3

現在、Windows ストア アプリを Windows 8.1 プレビューにリターゲットしようとしています。問題は、私のプロジェクトの 1 つで sqlite-net パッケージを使用したことです。ここで説明されている手順に従いました: http://www.lyalin.com/2013/07/09/sqlite-for-windows-runtime-for-windows-8-1-apps/および sqlite Visual Studio のプレリリース版をダウンロードしましたこのリンクからの拡張: http://www.lyalin.com/2013/07/09/sqlite-for-windows-runtime-for-windows-8-1-apps/。プロジェクトに Windows ランタイム用に新しくインストールした sqlite への参照を追加しましたが、ビルド中にエラーが発生しました。

Error   2   Windows Runtime type 'Windows.Foundation.Point' was found in
multiple referenced winmd files. Please remove either 'C:\Program Files (x86)\Microsoft
SDKs\Windows\v8.1\ExtensionSDKs\Microsoft.VCLibs\12.0\References\CommonConfiguration\neutral\platform.winmd'
or 'C:\Program Files (x86)\WindowsKits\8.1\References\CommonConfiguration\Neutral\Windows.winmd' 
from the list of referenced files.  C:\Users\Jarosław\Desktop\BCM\Win8Client\MetriceModel\WINMDEXP
MetriceModel (Windows 8.1)

どこかのフォーラムで、プロジェクトから Microsoft Visual C++ ランタイム パッケージへの参照を削除すると、問題が解決することが示唆されました。ソリューション全体を正常にコンパイルした後、実行時に次の例外が発生しました。

 Unable to load DLL 'sqlite3': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

次の行で例外がスローされます。

#if NETFX_CORE
        SQLite3.SetDirectory(/*temp directory type*/2, Windows.Storage.ApplicationData.Current.TemporaryFolder.Path);
#endif

SQLite.cs ファイル (ファイルは前述の sqlite-net パッケージのものです)。

プロジェクトのフォルダ bin/Debug/AppX にはファイル sqlite3.dll が含まれています。私のソリューションのすべてのプロジェクトには、プラットフォーム ターゲットとして x86 があります。この問題を解決するにはどうすればよいですか? プロジェクトを移行する前は、すべて正常に機能していました。

4

3 に答える 3

4

sqlite ダウンロード ページ (v3.8.0.2) で vsix パッケージの公式バージョンをインストールする必要があります。

Visual Studio アドイン マネージャーでは、このパッケージのバージョンは 3.7.1.17 であり、正しくありません。

その後、バグだと思います。適切なプロセッサ (プラットフォーム ターゲット) を選択する必要があります。

x86 でコンパイルされた移行済みの winrt アプリケーション (8.1) を x64 マシンにデプロイしたため、同じエラーが発生しました... => Windows 8.0 では機能しますが、Windows 8.1 では機能しません。

x64 マシンを使用している場合は、x64 ターゲット コンパイルを選択する必要があります。将来的に修正されることを願っています...

于 2013-10-01T10:39:53.343 に答える
1

WinRT 8.1 用の SQLite のプレビューを再インストールしていただけますか? 最初のパッケージに問題がありましたが、彼らと協力して更新しました。 http://sqlite.org/download.html

于 2013-07-31T16:41:36.330 に答える