Некоторые рекомендации по сертификации приложений Compatible with Windows 7
Проверка надежности приложения
Поддержка Fast User Switching, Remoting и Terminal Services
Тестирование, сертификация приложений и получение логотипа Compatible with WIndows 7 — это все более популярный способ обеспечения совместимости приложений с новой версией операционной системы Microsoft — Windows 7. Благодаря несложной и бесплатной процедуре тестирования, десятки российских компаний уже проверили свои приложения и получили для них логотип Compatible with WIndows 7. Далее приведены некоторые рекомендации, которые позволят вам максимально быстро пройти набор тестов для получения логотипа Compatible with WIndows 7.
Тестовый компьютер
Установка приложения должна удовлетворять следующим требованиям:
- приложение должно запускаться под той же учетной записью, под которой оно было установлено: запустите Task Manager, на вкладке Processes найдите приложение, в колонке User Name найдите имя учетной записи;
- приложение должно устанавливаться только в корректные папки:
- двоичные файлы (исполняемые файлы, библиотеки и т.п.) должны устанавливаться в %ProgramFiles% — это предотвращает появление лишних запросов на повышение привилегий и позволяет структурировать информацию на диске,
- документы и другие данные должны храниться в %UserProfile% или %Public% в зависимости от того, кому должны быть доступны эти данные – только конкретному пользователю (%UserProfile%) или всем пользователям (%Public%),
- за исключением использования GAC, SxS, установки шрифтов и прочего, не используйте каталог system32;
- приложение должно корректно реагировать на версию операционной системы:
- для проверки используйте Application Verifier c параметром –hiversionlie: Avrf –hiversionlie myapp.exe,
- этот параметр увеличивает номер версии на 2.2 — если номер версии был, например, 6.1, то станет 8.3;
- в реестре должны быть прописаны параметры для удаления приложения (Uninstall):
- эти параметры заносятся в Control Panel (Programs and Features) и используются для удаления приложений,
- для проверки наличия параметров для удаления приложений следует проверить ветвь реестра HKLM\Software\Microsoft\Windows\CurrentVersion\ Uninstall\ и найти в ней приложение,
- должны быть заполнены следующие параметры: DisplayName, InstallLocation, Publisher, UninstallString, VersionMajor и VersionMinor;
- установка должна производиться и на 64-разрядной версии операционной системы;
- по завершении установки приложения не должна требоваться перезагрузка компьютера.
Тестирование приложения
При тестировании приложения следует убедиться в том, что в манифесте приложения указан параметр requestedExecutionLevel. Кроме того:
- приложение должно работать в режиме Standard User;
- параметр requireAdministrator требует повышения привилегий;
- параметр asInvoker поддерживает режим Standard User.
Отсутствие параметра requestedExecutionLevel приводит к включению механизмов обеспечения совместимости, среди которых:
- перенаправление операций с файлами и реестром;
- определение программ установки;
- вызов Program Compatibility Assistant.
Для проверки содержимого манифеста либо просмотрите содержимое внешнего манифеста — myapp.exe.manifest, либо используйте утилиту sigcheck.exe (можно загрузить с сайта technet.microsoft.com) с параметром –m:
Sigcheck –m myapp.exe
Проведите тестирование приложения в режиме Standard User. Для этого выполните тестовый сценарий или набор операций, которые позволят убедиться в том, что приложение работает корректно под стандартной учетной записью.
Приложение не должно изменять системные настройки. Для этого они должны быть защищены механизмом Windows Resource Protection.
Проверка надежности приложения
Проверка надежности приложения включает проверку поддержки Restart Manager. Она позволяет избежать лишних перезагрузок системы в тех случаях, когда процесс «захватил» тот или иной ресурс и выполняет перезагрузку приложения, а не всей системы.
Для проверки поддержки Restart Manager выполните следующие действия:
- запустите приложение;
- в Task Manager получите его PID (Process ID);
- вызовите утилиту Restart Manager Tool — rmtesttool в качестве параметра, указав PID вашего приложения;
- убедитесь в отсутствии сообщений об ошибках.
Проверка надежности приложения включает также тестирование приложения под управлением Application Verifier, используемого для тестирования и обнаружения ошибок, «невидимых» для других тестов, обычно совместно с Windbg. Для тестирования приложения с помощью Application Verifier нужно выполнить следующие действия:
- Из командной строки с повышенными привилегиями запустите Windbg с параметром –I.
- В Application Verifier включите тесты Exceptions, Handles, Heaps, Locks, Memory, TLS из группы Basics Checks.
- Включите тесты DangerousAPIs и DirtyStacks из группы Miscelaneous.
- Запустите ваше приложение.
- Исследуйте каждое переключение в Windbg.
Проверка надежности приложения включает также проверку совместной работы приложения с Windows Error Reporting. Основной рекомендацией при применении Windows Error Reporting являектся совет обрабатывать только «известные» исключения. Для тестирования Windows Error Reporting выполните следующие действия:
- Запустите ваше приложение.
- Из командной строки с повышенными привилегиями запустите ThreadHijacker:
Threadhijacker.exe /ui /crash:av /process:myapp
- Откройте журнал Application Event Log.
- Убедитесь в том, что для вашего приложения указаны Application Error (Error) и Windows Error Reporting (Information).
Поддержка Fast User Switching, Remoting и Terminal Services
Приложения для Windows 7 должны удовлетворять следующим требованиям:
- работать в режиме Fast User Switching:
- на одном компьютере могут быть одновременно активны несколько пользовательских сессий,
- экземпляры приложения не должны конфликтовать друг с другом,
- звук в одной сессии не должен быть слышен в другой сессии;
- запускаться и корректно работать через Remote Desktop:
- удаленный доступ к компьютеру является часто используемым сценарием работы пользователей,
- если приложение не поддерживает удаленный доступ, оно должно сообщить об этом пользователю и корректно завершить свою работу.
Помимо перечисленного убедитесь в том, что пользователи не могут изменять документы и файлы других пользователей. Приложения должны поддерживать работу с документами и файлами только одного пользователя. Для проверки соответствия приложения данному требованию нужно выполнить следующее:
- если приложение позволяет создавать и сохранять документы, выполните основные операции под одной учетной записью;
- переключитесь на другого пользователя и попробуйте открыть документы, созданные на предыдущем шаге.
Поддержка High DPI и Aero
Приложения, совместимые с Windows 7, должны поддерживать High DPI и Aero. Перечислим основные симптомы несовместимости с High DPI:
- «обрезанные» интерфейсные элементы или текст;
- некорректные размеры шрифтов или расположение элементов;
- смазанные интерфейсные элементы;
- текст, отображаемый в виде пикселов;
- неверные координаты, например кнопки, которые не нажимаются.
Для тестирования в режиме High DPI выполните следующие действия:
- В Control Panel в разделе Appearance and Personalization —> Display выберите команду Set custom text size (DPI) и измените DPI на 120 или 144 (125 или 150% соответственно).
- Запустите приложение и выполните тестовый сценарий, максимально используя все интерфейсные возможности приложений.
- Обратите внимание на все некорректные отображения интерфейсных элементов.
Для тестирования поддержки Aero выполните следующие действия:
- Убедитесь в том, что режим Aero включен (например, в Performance Options должна быть включена опция Desktop Composition).
- Запустите приложение.
- Убедитесь в том, что режим Aero все еще включен.
- Проверьте отображение интерфейса вашего приложения, например попытайтесь быстро подвигать окно вашего приложения по экрану и убедитесь в том, что оно корректно отрисовывается.
Дополнительные рекомендации
При обеспечении поддержки 64-рязрядных платформ следует придерживаться следующих требований:
- для 64-разрядной платформы требуется наличие только 64-разрядных драйверов;
- 16-разрядная система не поддерживается;
- код для платформы x86 работает под управлением подсистемы Windows on Windows.
Использование имен файлов в формате 8.3 должно поддерживаться только для обеспечения совместимости с приложениями, написанными для предыдущей версии операционной системы.
Для проверки поддержки файлов в формате 8.3 вашим приложением выполните следующие действия:
- Отключите поддержку имен файлов в формате 8.3:
fsutil.exe behavior set disable8dot3 1.
- Проверьте работу вашего приложения в части работы с файлами.
- Включите поддержку имен файлов в формате 8.3:
fsutil.exe behavior set disable8dot3 0
Кроме того, стоит обратить внимание на наличие подписанных бинарных файлов и убедиться в том, что все бинарные файлы вашего приложения подписаны с помощью цифрового сертификата. Для этого:
- Из командной строки с повышенными привилегиями выполните следующую команду:
signtool verify /pa /v “<App_Install_Directory>\<Executable>”
- Обратите внимание на сообщения об ошибках, выдаваемые утилитой signtool.
После того как приложение установлено, пользователи могут обновить версию операционной системы, поэтому важна также поддержка обновления операционной системы пользователями:
- Установите приложение на Windows Vista (или Windows XP).
- Выполните обновление операционной системы на Windows 7.
- Убедитесь в работоспособности вашего приложения.
- Убедитесь в том, что приложение по-прежнему корректно удаляется с компьютера.
Если у вас возникают вопросы по тестированию или сертификации приложений под Windows 7, пожалуйста, присылайте их по адресу: appcmpru@microsoft.com.