UWPを開発しています。私はsqlite-net-pclライブラリを使用しています。アプリケーションをRCからRTM)にアップグレードした後、モバイルエミュレーターまたはデバイスで実行すると、ランタイムエラー(sqlite3.dllが見つかりません)が発生しました。 C++ 2013ランタイムパッケージへの参照と私はそれをローカルマシンで実行しました。
例外メッセージ:
メッセージ「「SQLitePCL.raw」の型初期化子が例外をスローしました。」ストリング
内部例外メッセージ:
{"ロードできませんDLL 'sqlite3':指定されたモジュールが見つかりませんでした。(HRESULTからの例外:0x8007007E)"} System.Exception {System.DllNotFoundException}
もちろん、次のエラーが発生するため、「ユニバーサルアプリプラットフォーム用のSqlite」に参照を追加できませんでした
重大度コード説明プロジェクトファイル行エラーペイロードに、同じ宛先パス「sqlite3.dll」を持つ2つ以上のファイルが含まれています。ソースファイル:C:\ Program Files(x86)\ Microsoft SDKs\UAP\v0.8.0.0\ExtensionSDKs\SQLite.UAP.2015\3.8.11.1\Redist\Debug\ARM\sqlite3.dll C:\ Users\sMavrikis .nuget\packages\SQLitePCL.raw_basic\0.7.1\build\native\sqlite3_dynamic\winrt81\arm\sqlite3.dll TestApp1
'SQLite for Universal App Platform'への参照を追加します。これにより、エラーがトリガーされます。
ペイロードには、同じ宛先パス「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
に
C:\ Users \%USERNAME%\。nuget\packages\SQLitePCL.raw_basic\0.7.1\build\native\sqlite3_dynamic\winrt81\arm\sqlite3.dll
既存のファイルを上書きします。
プロジェクトを再構築します。今すぐコンパイルする必要があります。
同じエラーメッセージが表示されていました。私はSQLite-PCLを使用することから始めましたが、これにはユニバーサルアプリプラットフォーム用のSQLiteも参照として必要でした。その後、SQLite.Net-PCLに切り替えました。それは私がそれらのエラーを得たときです。解決策を研究しているときに、私はこのページを見つけました。それは少しの間働いた。最終的に、ユニバーサルアプリプラットフォーム用のSQLiteへの参照を削除し、エラーはなくなりました。
コンパイラー構成でx64またはarmを選択することにより、同様の問題を修正しました。
エラーペイロードに、同じ宛先パス 'e_sqlite3.dll'を持つ2つ以上のファイルが含まれています。ソースファイル:C:\ Users\xleon.nuget\packages\SQLitePCLRaw.lib.e_sqlite3.v140\1.1.0\runtimes\win10-arm\native\e_sqlite3.dll C:\ Users\xleon.nuget\packages\sqlitepclraw。 lib.e_sqlite3.v140\1.1.0\runtimes\win10-x86\native\e_sqlite3.dll
もちろん、これではエミュレータを実行できません
返信が遅れましたが、問題が発生しました。私にとってそれを修正したのは、パッケージの1つがまだ古い参照を使用していて、古い別のプロジェクトを参照している実行中のプロジェクトにプルスルーしていたため、ソリューション内のすべてのプロジェクトでNugetパッケージの更新を行うことでした。
SQLitedllを含めるための条件をUWP.csprojに配置することで、この不一致を解決することができました。
<SDKReference Include="SQLite.UWP.2015, Version=3.19.3" Condition="'$(Configuration)'=='Debug'">
<Name>SQLite for Universal Windows Platform</Name>
</SDKReference>
デバッグのためにUWPバージョンで実行する必要がありました。そうしないと、XAMlデザイナーが「SQLite.dllが見つかりません...」と爆発します。