如何部署使用SQLite的Windows 8 Metro应用程序?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (20)

背景

我们使用System Center 2012将Windows 8 Metro风格的应用程序部署到运行Windows 8 Enterprise x64的领域的三星平板电脑。这些板块被加入到域中,并具有持久的DirectAccess连接,允许System Center将应用程序和更新推送到设备。

我们必须将我们的应用程序部署到现场数百台设备中,这就是我们进入System Center路线的原因。代码签名证书使用组策略安装在每台设备上。要部署应用程序,只需提供程序包输出并指定要安装的设备集合。该应用只需几分钟即可显示在设备上。

我们遇到的问题是,当System Center部署我们的应用程序时,SQLite依赖项会丢失,并且我们的数据访问都不起作用。

关于我们的项目

我们的应用程序是一个使用SQLite作为后端的WinJS应用程序。但是,我们所有的数据访问代码都在WinJS项目引用的C#WinMD项目中。我们使用sqlite-net库与SQLite交谈 - 我们在C#项目中包含了该源代码。

使用其他部署方法测试

在Debug / Release和x86 / x64中,当您在本地调试或运行应用程序时,应用程序的SQLite数据访问都可以正常工作。

应用程序打包过程提供了一个PowerShell脚本,您可以根据需要使用它来安装应用程序和开发者许可证。使用PowerShell脚本安装我们的应用程序时,SQLite数据访问也可以正常工作。通过打包和安装应用程序的Debug / Release和x86 / x64版本进行验证。

故障排除

当应用程序首次尝试使用SQLite时,我们发现它无法找到sqlite3.dll的异常。

我们已经尝试/验证了以下内容:

  • 确认我们正在部署Release / x64版本
  • 检查WinRAR中的appx并验证它是否包含sqlite3.dll
  • 引用C#项目中的“SQLite for Windows Runtime”扩展,而不是WinJS项目
  • 同时引用C ++运行时,这会导致System Center在部署应用程序时失败。不知道为什么,但看着它。
提问于
用户回答回答于

扫码关注云+社区