2

Typescript、WinJS、および永続的なローカル データベースを使用するマルチデバイス ハイブリッド アプリを作成しようとしています。WinJS コントロールをレンダリングできるようになりました。

しかし、Cordova プラグインを追加するための指示に従って WebSQL 機能を追加しようとすると (config.xml ファイルに移動し、[プラグイン] タブで [WebSQL Polyfill] を確認します)、コンパイルされなくなります。

コンパイラ エラーは C:\Program Files (x86)\MSBuild\12.0\bin\amd64\Microsoft.Common.CurrentVersion.targets(1886,5): error MSB3774: Could not find SDK "SQLite.WinRT, Version=3.8. 2」。[C:\Users\Lee\Documents\JSApps\TurnstileTS\TurnstileTS\bld\Debug\platforms\windows8\CordovaApp.jsproj]

SQLite バイナリの最新バージョン (Win8 と Win8.1 の両方) をすべて持っています。プラグインが v3.8.2 に依存しているように見えるので、コマンド ラインを使用して NuGet パッケージを追加しようとしました。

インストールパッケージ SQLitePCL -バージョン 3.8.2

これは正常にインストールされましたが、次の一連のメッセージは次のとおりです。

Windows ランタイム用の拡張 SDK SQLite への参照が見つかりません。Windows ランタイム用の拡張 SDK SQLite への参照が既に削除されていることを確認します。「SQLitePCL 3.8.2.0」をアンインストールしています。「SQLitePCL 3.8.2.0」を正常にアンインストールしました。インストールに失敗しました。ロールバック...

これは私を夢中にさせています。私は通常C#の人なので、これは簡単なことかもしれません...しかし、他のスタックオーバーフローの提案状態のようにdllへの参照を追加することさえできません。プロジェクトを右クリックして「参照を追加...」しようとすると、次のエラー メッセージが表示されます。

TargetPlatformWinMDLocation プロパティの値がありません。

...その後、何もありません。

何か案は?

[編集] SQLite 3.8.6 の Win8、Win8.1、WP8、WP8.1 バージョンがインストールされています。アプリの Windows Phone バージョンを作成してみましたが、うまくいきました。ただし、Windows 8 はビルドされません。AnyCPU ではなく x86 に設定しましたが、何も変わりません。

4

1 に答える 1

3

これには非常に簡単な修正があります。Windows 8 の場合、SQLite 用の VSIX パッケージが既にインストールされている必要があります。インストールしたバージョン番号に注意してください。10/26/14 の時点で、3.8.7 がインストールされています。

エクスプローラーのソリューションのフォルダーから、次の場所に移動します。

{solution folder}\JavaScript\{project name}\bld\Debug\platforms\windows8

プロジェクトの jsproj ファイルをテキスト エディターで編集し、SQLite のエントリが表示されるまで下にスクロールします。

<ItemGroup>
    <SDKReference Include="SQLite.WinRT, Version=3.8.7" />
</ItemGroup>

ファイル内のバージョン番号を、コンピューター上の実際のバージョンに変更します。プロジェクトは WebSQL プラグインを有効にしてビルドされ、実際に動作します。(ローカル ストレージに作成されたデータベース ファイルを確認しました。)

- config.xml メニューで WebSQL プラグインを有効にしておく必要があります。

于 2014-10-26T13:16:16.107 に答える