2015-08-13 28 views
0

我试图编译我的Xamarin项目,我得到一个编译器错误,我不明白。以下错误意味着什么?我该如何解决这个问题?SQLite3连接导致编译错误令人困惑

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我SHD配置文件更改为7。我已经做到这一点,它摆脱了所有的错误,而是产生一个新问题:

DtoToVm \包\ Microsoft.Net.Http.2.2.29 \ LIB \便携式net40 + SL4 + win8的+ wp71 + wpa81 \ System.Net.Http.dll:错误CS1703:一个n具有相同标识'System.Net.Http,版本= 1.5.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的程序集已被导入。尝试删除其中一个重复的参考。 (CS1703)(DtoToVm)

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

+0

您是否曾尝试将程序集“System.Threading.Tasks.TaskScheduler”添加到您的项目引用中? – helb

+0

非常简单 - 它在例外中说 - “为程序集添加引用'System.Threading.Tasks'”到您的项目 – Nissim

+1

有一个SQLite PCL NuGet可以为您节省很多麻烦 - https:// www。 nuget.org/packages/SQLite.Net-PCL – Jason

回答

0

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