我正在创建一个 Windows 8 应用商店应用程序。这个应用程序的前端(主项目)是 HTML5/Javascript。我正在按照Tim Heuer的本指南创建一个 C# WinRT 组件,该组件包装 SQLite 调用并充当控制器。前端通过Javascript调用该组件,更新数据,获取演示内容。
所以我的解决方案中有 2 个项目,javascript 中的“main”和 C# 中的“db”。我已经设法让 SQLite 根据指南工作。我有这种结构的原因是我试图将应用程序从 iOS 移植到 Win8。“控制器”部分从一开始就是一个独立的组件,它已经移植到 C#。
但是,有一个警告。由于这个已知问题,我必须从“db”项目中删除对 C++ Runtime v11 的引用以使其可编译。虽然它在开发机器上运行良好。
然后我得到了这台测试机(准确地说是三星 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。但现在改变对我来说已经太晚了,如果没有混合结构,这个项目是不可能的。