2015-08-13 29 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。