SQLite3连接导致混淆编译错误

时间:2015-08-13 11:35:50

标签: c# .net sqlite xamarin

我正在尝试编译我的Xamarin项目,并且我收到了一个我不理解的编译器错误。以下错误意味着什么,我该如何解决这个问题?

  

Data \ SQLiteClient.cs(4,4):错误CS0012:类型' System.Threading.Tasks.TaskScheduler'在未引用的程序集中定义。您必须添加对程序集的引用,System.Threading.Tasks,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'。 (CS0012)(DtoToVm.Droid)

相关信息:

  • Xamarin表示空白项目PCL
  • 项目设置为.NET 4.5或更高版本
  • 简介:PCL 4.5 - Profile78

很多参考文献都不满意,但我没有手动设置或编辑这些内容。也许是一个nuget包冲突?

enter image description here

using Xamarin.Forms;  
using DtoToVm.Droid.Data;

[assembly: Dependency (typeof(SQLiteClient))]
namespace DtoToVm.Droid.Data  
{
using System;
using DtoToVm.Data;
using SQLite.Net.Async;
using System.IO;
using SQLite.Net.Platform.XamarinAndroid;
using SQLite.Net;

public class SQLiteClient : ISQLite
{
    public SQLiteAsyncConnection GetConnection ()
    {
        var sqliteFilename = "Conferences.db3";
        var documentsPath = Environment.GetFolderPath (Environment.SpecialFolder.Personal);

        var path = Path.Combine (documentsPath, sqliteFilename);

        var platform = new SQLitePlatformAndroid ();

        var connectionWithLock = new SQLiteConnectionWithLock (
            platform,
            new SQLiteConnectionString (path, true));


        // The below line causes the compile error
        var connection = new SQLiteAsyncConnection (() => connectionWithLock);

        return connection;
    }
}
}

修改 根据这个thread,我把配置文件更改为7.我已经完成了这个并且它解决了所有错误但产生了一个新错误:

  

DtoToVm \ packages \ Microsoft.Net.Http.2.2.29 \ lib \ portable-net40 + sl4 + win8 + wp71 + wpa81 \ System.Net.Http.dll:错误CS1703:具有相同身份的程序集&# 39; System.Net.Http,Version = 1.5.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'已经进口了。尝试删除其中一个重复的引用。 (CS1703)(DtoToVm)

这个重复的引用可以在哪个文件中?

1 个答案:

答案 0 :(得分:0)

我真的不知道Xamarin中是否存在System.Threading.Tasks命名空间,如果它存在则引用它,如果不存在则使用常规SqliteConnection并且不使用Async。