Win8 Javascript Metro应用程序,带有C#WinRT组件和SQLite

Win8 Javascript Metro应用程序,带有C#WinRT组件和SQLite,c#,sqlite,windows-8,windows-runtime,windows-store-apps,C#,Sqlite,Windows 8,Windows Runtime,Windows Store Apps,我正在创建Windows 8应用商店应用程序。该应用程序的前端(主项目)采用HTML5/Javascript。下面我将创建一个C#WinRT组件,该组件封装SQLite调用并充当控制器。前端通过Javascript调用该组件,以更新数据并获取演示内容 因此,在我的解决方案中有两个项目,javascript中的“main”和C#中的“db”。我已经设法让SQLite按照指南工作。我之所以采用这种结构,是因为我正在尝试将一个应用程序从iOS移植到Win8。“控制器”部分是一个独立于get go的组件

我正在创建Windows 8应用商店应用程序。该应用程序的前端(主项目)采用HTML5/Javascript。下面我将创建一个C#WinRT组件,该组件封装SQLite调用并充当控制器。前端通过Javascript调用该组件,以更新数据并获取演示内容

因此,在我的解决方案中有两个项目,javascript中的“main”和C#中的“db”。我已经设法让SQLite按照指南工作。我之所以采用这种结构,是因为我正在尝试将一个应用程序从iOS移植到Win8。“控制器”部分是一个独立于get go的组件,它已经移植到C#

然而,有一个警告。因为,我必须从“DB”项目中删除对C++运行时V11的引用,以便使它可以编译。尽管它在开发机器中运行良好

然后我得到了这个测试机器(确切地说是三星xe700t1a,英特尔i5),我发现在这个测试机器上“调试远程”时,Visual Studio不会部署SQLite3。结果,我的SQLite调用失败,出现错误:
“无法加载DLL‘sqlite3’:找不到指定的模块。(HRESULT异常:0x8007007E)”

根据我前面提到的指南,SQLite是通过WinRT扩展提供的,其目的是使部署自动化

我想知道为什么会发生这种情况,以及如何使其正确?我还想知道Windows应用商店对于这种结构的应用程序是否存在任何认证问题


我还发现并建议目前不可能在WinRT组件中使用SQLite。但是现在改变对我来说太晚了,如果没有混合结构,这个项目就不可能实现。

我找到了解决方案。我使用了来自的提示,非常简单

我要做的是在解决方案中创建另一个项目,将输出类型设置为C#类库。将对SQLite for WinRT的引用和SQLite net(nuget)包装移到此新项目。之后,我必须手动检查sqlite net中的类,并将所有“内部”类更改为“公共”

对于原始的控制器项目,我使用myclasslib添加
以便找到类定义


显然,这种变通方法将完美地发挥作用。SQLite3已部署,没有关于缺少引用的警告。

另一个注意事项,因为访问
C:\Program Files\WindowsApps
文件夹有限制,我甚至不知道远程调试时我的应用部署了什么。您可以以管理员身份打开命令提示符,然后手动导航到WindowsApps文件夹。如果使用Dir或文件资源管理器,您将看不到它的列表。@JimWooley,谢谢。但看起来RemoteDebugger并没有在那里部署我的应用程序。我找不到相应的文件夹。