Windows 8 ストア アプリを作成しています。このアプリのフロントエンド (メイン プロジェクト) は HTML5/Javascript です。また、Tim Heuer によるこのガイドに従って、SQLite 呼び出しをラップし、コントローラーとして動作する C# WinRT コンポーネントを作成しています。フロントエンドは Javascript を介してこのコンポーネントを呼び出し、データを更新し、プレゼンテーション コンテンツを取得します。
したがって、私のソリューションには、javascript の「main」と C# の「db」の 2 つのプロジェクトがあります。ガイドに従ってSQLiteを動作させることができました。この構造になっているのは、アプリを iOS から Win8 に移植しようとしているからです。「コントローラー」部分は最初から分離されたコンポーネントであり、既に C# に移植されています。
ただし、注意点が 1 つあります。この既知の問題のため、'db' プロジェクトから C++ ランタイム v11 への参照を削除してコンパイル可能にする必要があります。開発マシンでは問題なく動作しますが。
次に、このテスト マシン (正確には samsung xe700t1a、Intel i5) を入手しました。このテスト マシンで「リモートをデバッグ」すると、Visual Studio が SQLite3 を展開しないことがわかりました。その結果、私の SQLite 呼び出しはエラーで失敗します: "Unable to load DLL 'sqlite3': The specified module could not be found. (Exception from HRESULT: 0x8007007E)"
.
前述のガイドによると、SQLite が WinRT 拡張機能を介して利用できるようになったポイントは、展開を自動化することです。
なぜこれが起こるのか、どうすれば正しくなるのだろうか?また、この構造のアプリの Windows ストアに認定の問題があるかどうかも疑問に思っていますか?
また、この投稿と、現在 WinRT コンポーネントで SQLite を使用できないことを示唆するこの投稿に出くわしました。でも、今さら変えても遅いし、ハイブリッドな体制がないとこのプロジェクトは成り立たない。