2016-08-04 4 views
0

MVVMCross UWPアプリケーションでSQLiteを使用しようとしています。しかし、できるだけ早く私は私のデータアクセス層の登録インスタンスを解決しようとして、私は次のエラーを取得する:それはクラッシュどこMVVMCrossでUWPでSQLiteを使用する

Exception thrown: 'System.IO.FileLoadException' in MyApp.Core.dll

Additional information: Could not load file or assembly 'SQLite.Net, Version=3.1.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from 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パッケージがどのプロジェクトのために必要とされるに関係して推測しているこのの重要な部分を見逃しています。誰かが私を正しい方向に向けることができますか?

答えて

4

iOSおよびAndroidとは異なり、SQLiteはデフォルトでは提供されないため、SQLite for Universal Windows Platformパッケージへの参照を手動でインストールして追加する必要があります。これは実際には素晴らしいことです。なぜなら、あなたは常に最新かつ最高のバージョンを手に入れることができるからです!

hereから拡張子をダウンロードしてインストールしてください。ユニバーサルWindowsプラットフォームという見出しの下に最新バージョンを入手してください。

Visual Studioを再起動し、ソリューションエクスプローラでUWPプロジェクトを右クリックし、Add - Referenceを選択します。 参照を追加するダイアログウィンドウ左側のサイドバーにUniversal Windows - Extensionsを選択し、拡張子のリストでSQLite for Universal Windows Platformのチェックボックスをオンにします。

これはうまくいけば問題を解決するのに役立ちます。

+1

私はこれを試してみましたが、当初は違いはありませんでした。私がやったことは、Nugetの参考文献を取り除き、それらを再追加することでした。それはうまくいった。どうもありがとう。 –

関連する問題