我试图让sqlite与winrt兼容。我已切换到新的Winrt支持的旧电话。现在我有项目编译我想验证它不使用任何不支持的旧API调用或通话。

Windows App Cert套件似乎只验证实际的Metro应用程序。如何验证WinRT DLL?

编辑:

似乎应用了App认证套件中有一个错误。它似乎没有验证引用的DLL。如果将代码移动到应用程序,则它确实验证。此外,编译时间错误并不总是出现在Metro中不支持的呼叫。是否有一个标志我需要在编译时捕获这些错误?有问题的文件是带有WinRT扩展的C文件,仅为此文件关闭。

有帮助吗?

解决方案

未在COMRO中不支持的呼叫编译时间错误的问题已在消费者预览中修复。此外,App认证套件现在也正确验证了引用的DLL。

其他提示

我知道Codeplex上有一项努力为Metro Apps进行COMELESPLES的SQL Lite实现。 http://sqlwinrt.codeplex.com/。根据端口的状态,您可能会认为是一个选项。

我可以看出这将是有用的,但我不知道任何方法来验证个人dll。 但是,有许多隐式和明确的检查将会发生一个非常好的主意。

如果要将应用程序上传到商店,您的SQL Lite实现必须是您包的一部分,因此将在认证过程中验证。认证过程将在项目中检查所有可执行文件和DLL,并查找坏API。如果检测到,则认证将失败。

此外,您正在编译的Windows 8 SDK具有仅公开Win8 Metro API的标题文件,因此您将在编译期间获得错误(它看起来您通过成功编译解决了这个问题)。

最后,您使用应用程序在沙箱环境中运行,并且当API尝试执行某些东西时,它不应该这样做,例如注册表访问的琐碎示例,您将抵消安全/访问问题。来自Sysinternals的“Process Monitor”是通过在跟踪期间查看安全/访问问题来观察应用程序中的一个很好的方法。

我知道这是一个广泛的笔划,考虑到你的问题。我希望它有所帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top