Возможно ли проверить компонентную библиотеку WinRT? - PullRequest
4 голосов
/ 25 февраля 2012

Я пытаюсь сделать SQLite совместимым с WinRT.Я переключил старые вызовы, которые не поддерживаются WinRT, на новые.Теперь, когда у меня есть проект компиляции, я хотел бы проверить, что он не использует какие-либо более старые вызовы API или вызовы, которые не поддерживаются.

Набор сертификатов Windows App, кажется, только проверяет фактическое приложение метро.Как мне просто проверить WinRT DLL?

Редактировать:

Похоже, что есть ошибка в комплекте сертификации приложения.Кажется, он не проверяет ссылочные библиотеки DLL.Если вы перемещаете свой код в приложение, оно действительно проверяет его.Кроме того, ошибки времени компиляции не всегда присутствуют для вызовов, не поддерживаемых в метро.Есть ли флаг, который мне нужно установить, чтобы ловить эти ошибки во время компиляции?Данный файл является файлом C с расширениями WinRT, отключенными только для этого файла.

Ответы [ 2 ]

4 голосов
/ 06 марта 2012

Проблема не генерирования ошибок времени компиляции для вызовов, не поддерживаемых в Metro, теперь исправлена ​​в Consumer Preview. Кроме того, комплект сертификации приложений теперь также корректно проверяет ссылочные библиотеки DLL.

1 голос
/ 25 февраля 2012

Я знаю, что в Codeplex предпринимаются усилия для реализации SQL Lite для использования в Metro Apps. http://sqlwinrt.codeplex.com/. В зависимости от состояния порта, вы можете рассмотреть это как вариант.

Я мог видеть, как это было бы полезно, но я не знаю ни одного способа проверки отдельной DLL.

Однако существует ряд неявных и явных проверок, которые могут дать вам очень хорошую идею.

Если вы хотите загрузить свое приложение в магазин, ваша реализация SQL Lite должна быть частью вашего пакета, и, следовательно, она будет проверена в процессе сертификации. Процесс сертификации будет проверять все исполняемые файлы и библиотеки DLL в вашем проекте и искать плохие API. Если это обнаружено, сертификация не пройдет.

Кроме того, Windows 8 SDK, для которого вы компилируете, содержит заголовочные файлы, которые предоставляют только API-интерфейсы Win8 Metro, поэтому вы можете получить ошибки во время компиляции (похоже, вы решили эту проблему, успешно компилируя).

Наконец, вы работаете в изолированной среде со своим приложением, и когда API пытается сделать что-то, чего он не должен делать, например, тривиальный пример доступа к реестру, вы столкнетесь с проблемами безопасности / доступа. «Монитор процессов» от SYSINTERNALS - отличный способ наблюдать это в вашем приложении, просматривая проблемы безопасности / доступа во время трассировки.

Я знаю, это широкий штрих с учетом вашего вопроса. Надеюсь, это поможет.

...