2017-02-18 6 views
0

デスクトップとモバイルの両方でUWP用のアプリケーションを開発する方法を学習しようとしています。私は現在、ストアアプリケーションの状態に私のアプリで作業Entity Frameworkのを得ることに取り組んでおり、次のリンクに続くされています:それはデスクトップのためによく働いたsqllite3.dllでモバイル向けUWPアプリ開発の問題が発生する

https://docs.microsoft.com/en-us/ef/core/get-started/uwp/getting-started

を、問題は、しかし、私はそれを実行しようとするということです私は上記の貼り付けられたリンクで

Unable to load DLL 'sqlite3': The specified module could not be found 

他の誰かが同じ問題を持っていた中で、:コードはdb.Database.Migrate()ステップに到達したときのWindows Mobileエミュレータ上で私は、デバッグモードで次のエラーを取得します彼らは以下を試すことを推奨しました:

Step 1: Install SQLite VSIX pacakge for Universal Windows Platform development using Visual Studio 2015 
https://www.sqlite.org/2016/sqlite-uwp-3130000.vsix 

Step 2: Install NuGet package SQLite.NET-PCL 
Install-Package SQLite.NET-PCL 

Step 3: Add references 
Add Reference -> Universal Windows ->Extensions -> Make sure the following packages have been checked: "SQLite for Universal Windows Platform" "Visual C++ 2015 Runtime for Universal Windows Platform Apps" 
After that, if you get the error "Payload contains two or more files with the same destination path 'sqlite3.dll', do the following: 
copy sqlite3.dll from 
C:\Program Files (x86)\Microsoft SDKs\UAP\v0.8.0.0\ExtensionSDKs\SQLite.UAP.2015\3.8.11.1\Redist\Debug\ARM\sqlite3.dll 
past to (override it) 
C:\Users\%USERNAME%\.nuget\packages\SQLitePCL.raw_basic\0.7.1\build\native\sqlite3_dynamic\winrt81\arm\sqlite3.dll 

これらの手順を実行した後の問題は、「Payloadに2つ以上のファイルが含まれています」というビルドを実行するときに問題が発生することです。ただし、SQLitePCL.raw_basicディレクトリにはありませんそれ)。代わりに、私のエラーは以下の通りです:私はどこでも探してきた、真にモバイルに取り組んで私のUWPプログラムを取得する方法へと困惑しています

Payload contains two or more files with the same destination path 'sqlite3.dll'. Source files: 
C:\Users\admin\.nuget\packages\SQLite\3.13.0\runtimes\win7-x86\native\sqlite3.dll 
C:\Program Files (x86)\Microsoft SDKs\UAP\v0.8.0.0\ExtensionSDKs\SQLite.UWP.2015\3.13.0\Redist\Debug\x86\sqlite3.dll 

。あなたの助けをありがとう!

答えて

0

this documentの@Leandro_Medeiros_MachadoさんのコメントThe specified module could not be foundさんからの例外を解決するソリューションがあるようです。上記の3つの手順を実行した後でPayload contains two or more files with the same destination path 'sqlite3.dll'例外が発生した場合は、コメントから次の解決策を見つけることもできます。その後

あなたがエラーを取得する場合、「ペイロードは、同じ宛先パスを持つ2つの以上のファイル 『sqlite3.dll』が含まれ、次の手順を実行します(これを上書き)に C:\Program Files (x86)\Microsoft SDKs\UAP\v0.8.0.0\ExtensionSDKs\SQLite.UAP.2015\3.8.11.1\Redist\Debug\ARM\sqlite3.dll 過去からのコピーsqlite3.dllをあなたのために C:\Users\%USERNAME%\.nuget\packages\SQLitePCL.raw_basic\0.7.1\build\native\sqlite3_dynamic\winrt81\arm\sqlite3.dll

、あなたは(オーバーライド)C:\Users\admin\.nuget\packages\SQLite\3.13.0\runtimes\win7-x86\native\sqlite3.dllC:\Program Files (x86)\Microsoft SDKs\UAP\v0.8.0.0\ExtensionSDKs\SQLite.UWP.2015\3.13.0\Redist\Debug\x86\sqlite3.dllからコピーする必要があります。

しかし、実際には、EFコアを使用するために、あなたはしないでください上記の手順が必要です。上記の回避策を使用する代わりに、環境を確認することをお勧めします。私はこの文書に従って簡単なEFプロジェクトを作成し、VSIXをインストールせずにエミュレータ(ビルド10586)で正常に動作させることができます。私のVSビルドは2015アップデート3、OSバージョンはビルド14393、EFコアバージョンはMicrosoft.EntityFrameworkCore.Sqlite 1.1.0です。

そして、もし最新版:ご使用の環境が以下の要件を満たしたのであれば、まず確認してくださいあなたのEFコアとEFコアツールのバージョンが正しいです。

+0

お返事ありがとうございます。最近マイクロソフトのウェブサイトからすべてのものをインストールして以来、私は間違いなくすべてのものを持っています。私はWindows 10ビルド14393、Visual Studio 2015 Update 3、およびMicrosoft.EntityFrameworkCore.Sqlite 1.1.0を持っています。とにかくファイルを上書きしようとしましたが、メッセージはまだ残っています。私のEFコアツールのバージョンは1.1.0-preview4-finalです。私はまた、それが違いを生むならば、私はモバイルエミュレータのビルド14393でそれを実行していることを言及する必要があります。 他のアイデアはありますか? – sikhness

+0

上記のディレクトリにコピーすると、私はこの質問を皮肉なことに作成する前に動作していなかったようです。たぶん私はマシンを再起動する必要がありました。しかし、私は現在すべてのものを持っており、VSIXを追加せずにこれらのステップを実行することなく動作させることができません。私は14393 Mobileエミュレータで試していました。それはなぜだろう?他のすべてのバージョンはあなたのものと同じです。 – sikhness

+0

@sikhness、私もエミュレータビルド14393でうまく動作することをテストします。 .NetCoreバージョンが5.2.2であるかどうかを確認してください。そしてあなたの問題はエミュレータの問題のように思えますが、エミュレータを再ダウンロードして解決できるかもしれません。いずれにしても、回避策で解決しました。私の返信があなたを助けたなら、あなたは受け入れられたとマークできますか? –

関連する問題