簡體   English   中英

在帶有MVVMCross的UWP中使用SQLite

[英]Using SQLite in a UWP with MVVMCross

我正在嘗試在MVVMCross UWP應用中使用SQLite。 但是,一旦我嘗試解析數據訪問層的注冊實例,就會出現以下錯誤:

引發異常:MyApp.Core.dll中的“ System.IO.FileLoadException”

附加信息:無法加載文件或程序集“ SQLite.Net,版本= 3.1.0.0,區域性=中性,PublicKeyToken =空”或其依賴項之一。 找到的程序集的清單定義與程序集引用不匹配。 (來自HRESULT的異常:0x80131040)

這是它崩潰的地方:

 private void AddProduct()
 {
     ICrudEntityDataAccess da = Mvx.Resolve<ICrudEntityDataAccess>();
     da.Create<Product>(Product); // Runtime error
 }

UWP應用引用了Nuget包:

SQLite.Net.Platform.WinRT

以及核心應用參考:

SQLite.Net.Core-PCL

Sqlite.Net-PCL

在此處注冊:

protected override void InitializeFirstChance()
{
    base.InitializeFirstChance();

    MvxSimpleIoCContainer.Instance.RegisterSingleton<IPlatformSpecific>(
        new PlatformSpecific()
        {
            LocalFolderPath = 
                Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path,
                "db.sqlite")
        });

    MvxSimpleIoCContainer.Instance.RegisterSingleton<ISQLitePlatform>(
        new SQLitePlatformWinRT());

顯然,我錯過了其中的關鍵部分(我猜測哪些項目需要使用NuGet軟件包。請問有人可以向我指出正確的方向嗎?

由於與iOS和Android相比默認情況下未提供SQLite,因此您需要手動安裝並添加對SQLite for Universal Windows Platform包的引用。 這實際上是一件了不起的事情,因為您始終可以擁有最新和最好的版本!

此處下載並安裝擴展-在“ 通用Windows平台”標題下獲取最新版本。

重新啟動Visual Studio,在解決方案資源管理器中右鍵單擊您的UWP項目,選擇Add - Reference 在“ 添加引用對話框”窗口中,在左側欄中選擇“ Universal Windows - Extensions ,然后在擴展列表中選中“ SQLite for Universal Windows Platform ”復選框。

希望這將有助於解決您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM