我正在尝试创建一个使用 Typescript、WinJS 和持久本地数据库的多设备混合应用程序。我已经让它能够渲染 WinJS 控件了。
但是,当我尝试根据添加 Cordova 插件的说明添加 WebSQL 功能时(转到 config.xml 文件 -> 在插件选项卡下,选中 WebSQL Polyfill),它将不再编译。
编译器错误为 C:\Program Files (x86)\MSBuild\12.0\bin\amd64\Microsoft.Common.CurrentVersion.targets(1886,5):错误 MSB3774:找不到 SDK“SQLite.WinRT,版本=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# 人,所以我意识到这可能很简单......但我什至无法像其他一些 stackoverflow 建议所述那样添加对 dll 的引用。当我右键单击该项目并尝试“添加引用...”时,我收到错误消息:
TargetPlatformWinMDLocation 属性缺少值。
......然后什么也没有。
有任何想法吗?
[编辑]我安装了Win8、Win8.1、WP8、WP8.1版本的SQLite 3.8.6。我刚刚尝试构建该应用程序的 Windows Phone 版本,它可以工作!但是,Windows 8 无法构建。我将其设置为 x86 而不是 AnyCPU,它没有改变任何东西。
对此有一个非常简单的解决方法。对于 Windows 8,您需要已安装 SQLite 的 VSIX 包。请注意您安装的版本号!截至 2014 年 10 月 26 日,我安装了 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 插件的情况下构建并实际运行。 (我验证了在本地存储中创建的数据库文件。)
NOTE- 您必须已在 config.xml 菜单中启用 WebSQL 插件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)