我想让SQLite与WinRT兼容。我已将WinRT不支持的旧调用切换到新调用。现在我有项目编译,我想验证它没有使用任何较旧的API调用或不支持的调用。
Windows App Cert Kit似乎只验证实际的城域网应用程序。我如何只验证WinRT DLL?
编辑:
似乎app认证工具包中存在错误。它似乎没有验证引用的dll。如果将代码移动到应用程序,它会对其进行验证。此外,对于不支持在metro中的呼叫,并不总是存在编译时错误。我需要设置一个标志来在编译时捕获这些错误吗?有问题的文件是一个只关闭此文件的WinRT扩展名的C文件。
答案 0 :(得分:4)
现在,在Consumer Preview中修复了不支持Metro中不支持的调用的编译时错误的问题。此外,app认证工具包现在也可以正确验证引用的dll。
答案 1 :(得分:1)
我知道codeplex正在努力为Metro Apps执行SQL Lite实现。 http://sqlwinrt.codeplex.com/。根据端口的状态,您可以将其视为一个选项。
我可以看到这将如何有用,但我不知道有任何方法来验证单个DLL。
然而,为了给你一个很好的主意,会有很多隐式和显式的检查。
如果您要将应用程序上传到商店,您的SQL Lite实施必须是您的软件包的一部分,因此将在认证过程中进行验证。认证过程将检查项目中的所有可执行文件和DLL,并查找错误的API。如果检测到这种情况,认证将失败。
此外,您正在编译的Windows 8 SDK具有仅显示Win8 Metro API的头文件,因此您在编译期间会遇到错误(看起来您已通过成功编译解决了这个问题)。
最后,您在应用程序的沙盒环境中运行,当API尝试执行某些不应该执行的操作时,例如注册表访问的一个简单示例,您将遇到安全/访问问题。 SYSINTERNALS中的“Process Monitor”是一种在您的应用中通过查看跟踪期间的安全/访问问题来观察此内容的绝佳方式。
考虑到你的问题,我知道这是一个广泛的中风。我希望它有所帮助。