문제

I am trying to get SQLite to be compatible with WinRT. I have switched the older calls that are not supported by WinRT over to the new ones. Now that I have the project compiling I would like to validate that it is not using any of the older API calls or calls that not supported.

The Windows App Cert Kit seems to only validate an actual metro application. How do I just validate the WinRT DLL?

Edit:

It seems like there is a bug in the app certification kit. It doesn't seem to validate referenced dlls. If you move your code to the application it does validate it. Also, compile time errors are not always present for calls not supported in metro. Is there a flag I need to set to catch these errors at compile time? The file in question is a C file with WinRT extensions turned off just for this file.

도움이 되었습니까?

해결책

The issue of not throwing compile time errors for calls not supported in Metro has now been fixed in the Consumer Preview. Also the app certification kit now correctly validates referenced dlls as well.

다른 팁

I do know there is an effort on codeplex to do a SQL Lite implementation for Metro Apps to consume. http://sqlwinrt.codeplex.com/. Depending on the state of the port, you might consider that as an option.

I could see how this would be useful, but I'm not aware of any way to verify an individual DLL.

However, there are a number of implicit and explicit checks that are going to occur to give you a very good idea.

If you want to upload your app to the store, your SQL Lite implementation must be part of your package and thus it will be verified during the certification process. The certification process will inspect all executables and DLLs in your project and look for bad APIs. If so detected, certification will fail.

Also, the Windows 8 SDK you are compiling against has header files that only expose Win8 Metro APIs, thus you would get errors during compilation (it appears you have resolved this by successfully compiling).

Finally, you are running in a sandboxed environment with your application and when an API attempts to do something it isn't supposed to, such as a trivial example of registry access, you would run up against security/access issues. "Process Monitor" from SYSINTERNALS is an excellent way to observe this in your app by viewing security/access issues during the trace.

I know this a broad stroke in consideration of your question. I hope it helps though.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top