背景
我们正在使用System Center 2012将Windows8 Metro风格的应用程序部署到运行Windows8企业版x64的现场三星石板上。slates加入到域中,并有一个持久的DirectAccess连接返回该域,从而允许系统中心将应用程序和更新推送到设备。
我们必须将我们的应用程序部署到现场可能有数百台设备上,这就是我们选择System Center路线的原因。代码签名证书使用组策略安装在每个设备上。要部署应用程序,只需提供包输出并指定要在其上安装它的设备集合。这个应用程序几分钟后就会出现在设备上。
我们遇到的问题是,当System Center部署我们的应用程序时,SQLite依赖项丢失,我们的数据访问都不起作用。
关于我们的项目的
我们的应用程序是一个使用SQLite作为后端的WinJS应用程序。但是,我们所有的数据访问代码都在WinJS项目引用的C# WinMD项目中。我们正在使用sqlite-net库与SQLite对话-我们在C#项目中包含了该库的源代码。
在Visual Studio中,我们按照Tim Heuer's article中的描述安装了SQLite for Windows Runtime extension。Metro应用程序引用了这个。
使用其他部署方法进行测试
当您在本地调试或运行应用程序时,从应用程序访问SQLite数据工作得很好-在调试/发布和x86/x64中都是如此。
应用程序打包过程提供了一个PowerShell脚本,您可以使用该脚本安装应用程序和开发人员许可证(如果需要)。当使用PowerShell脚本安装我们的应用程序时,SQLite数据访问也工作得很好。通过打包和安装应用程序的Debug/Release和x86/x64版本,验证了这一点。
Troubleshooting
当应用程序第一次尝试使用SQLite时,我们看到一个关于它无法找到sqlite3.dll的异常。
我们已经尝试/验证了以下内容:
更新问题是系统中心在部署SQLite库所需的Visual C++运行时库依赖项时遇到问题。所以不幸的是,这不再是一个编程问题了。我们在这方面得到了一些帮助,我会发布修复。
https://stackoverflow.com/questions/12324557
复制相似问题