我試圖編譯我的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包衝突?
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)
此重複引用可以在哪個文件中?
您是否曾嘗試將程序集「System.Threading.Tasks.TaskScheduler」添加到您的項目引用中? – helb
非常簡單 - 它在例外中說 - 「爲程序集添加引用'System.Threading.Tasks'」到您的項目 – Nissim
有一個SQLite PCL NuGet可以爲您節省很多麻煩 - https:// www。 nuget.org/packages/SQLite.Net-PCL – Jason