Тесты комплекта сертификации приложений для Windows

Комплект сертификации приложений для Windows содержит ряд тестов, позволяющих убедиться, что ваше приложение готово к публикации в Microsoft Store. Ниже перечислены тесты с условиями, сведениями и предлагаемыми действиями в случае сбоя.

Развертывание и запуск тестов

Отслеживает приложение во время тестирования сертификации, чтобы зафиксировать момент сбоя или зависания.

Общие сведения

Приложения, которые перестают отвечать на запросы или завершать сбой, могут привести к потере данных и плохому опыту работы.

Мы ожидаем, что приложения будут полностью функциональными без использования режимов совместимости Windows, сообщений AppHelp или исправлений совместимости.

Приложения не должны указывать библиотеки DLL для загрузки в разделе реестра HKEY-LOCAL-MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit-DLLs.

Сведения о тесте

Мы проверяем устойчивость и стабильность приложений во время тестирования сертификации.

Пакет сертификации приложений Windows вызывает IApplicationActivationManager::ActivateApplication для запуска приложений. Чтобы АктивироватьApplication для запуска приложения, необходимо включить контроль учетных записей пользователей (UAC), а разрешение экрана должно быть не менее 1024 x 768 или 768 x 1024. Если любое условие не выполнено, ваше приложение завершится сбоем этого теста.

Корректирующие действия

Убедитесь, что UAC включен на тестовом компьютере.

Убедитесь, что вы выполняете тест на компьютере с достаточно большим экраном.

Если приложение не запускается, и тестовая платформа удовлетворяет предварительным требованиям ActivateApplication, вы можете устранить проблему, просмотрив журнал событий активации. Чтобы найти эти записи в журнале событий, выполните указанные ниже действия.

  1. Откройте eventvwr.exe и перейдите в папку Application and Services Log\\Microsoft\\Windows\\Immersive-Shell.
  2. Отфильтруйте представление, чтобы отобразить идентификаторы событий: 5900-6000.
  3. Просмотрите записи журнала для получения сведений, которые могут объяснить, почему приложение не запущено.

Устраните файл с проблемой, определите и исправьте проблему. Перестройте и повторно протестируйте приложение. Кроме того, можно проверка, если файл дампа был создан в папке журнала комплекта сертификации приложений Для Windows, который можно использовать для отладки приложения.

Тест запуска версии платформы

Проверяет, может ли приложение Windows работать в будущей версии ОС. Этот тест был применен только к рабочему процессу классического приложения, но теперь он включен для рабочих процессов Магазина и универсальная платформа Windows (UWP).

Общие сведения

Использование сведений о версии операционной системы для Microsoft Store ограничено. Это часто используется приложениями для проверка версии ОС, чтобы приложение могло предоставлять пользователям функциональные возможности, относящиеся к версии ОС.

Сведения о тесте

Пакет сертификации приложений Windows использует HighVersionLie для определения того, как приложение проверка версию ОС. Если приложение завершится сбоем, он завершится сбоем этого теста.

Корректирующее действие

Приложения должны использовать вспомогательные функции API версий для проверка этого. Дополнительные сведения см. в версии операционной системы.

Проверка обработчика фоновых задач отмены

Это проверяет наличие обработчика отмены для объявленных фоновых задач. При отмене задачи необходимо вызвать выделенную функцию. Этот тест применяется только для развернутых приложений.

Общие сведения

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

Сведения о тесте

Приложение запускается, приостанавливается и завершается не фоновая часть приложения. Затем фоновые задачи, связанные с этим приложением, отменяются. Состояние приложения проверка, и если приложение по-прежнему запущено, оно завершится сбоем этого теста.

Корректирующее действие

Добавьте обработчик отмены в приложение. Дополнительные сведения см. в статье "Поддержка приложения с помощью фоновых задач".

Число приложений

Этот тест позволяет убедиться, что пакет приложения (MSIX, APPX или пакет приложений) содержит одно приложение. Это было изменено в комплекте, чтобы быть автономным тестом.

Общие сведения

Этот тест был реализован в рамках политики Магазина.

Сведения о тесте

В приложениях для Windows Phone 8.1 этот тест подтверждает, что общее число пакетов приложений в наборе <512, набор содержит только один основной пакет, а архитектура основного пакета отмечена как ARM или нейтральная.

Для приложений Windows 10 тест проверяет, что номер редакции в версии пакета имеет значение 0.

Корректирующее действие

Убедитесь, что пакет и пакет приложений соответствуют требованиям, приведенным выше в сведениях о тесте.

Проверка соответствия манифеста приложения

Проверьте содержимое манифеста приложения, чтобы убедиться, что его содержимое правильно.

Общие сведения

Приложения должны иметь правильный формат манифеста приложения.

Сведения о тесте

Проверяет манифест приложения, чтобы проверить правильность содержимого, как описано в требованиях к пакету приложения.

  • Расширения файлов и протоколы

    Приложение может объявить расширения файлов, с которыми он хочет связаться. Используется неправильно, приложение может объявить большое количество расширений файлов, большинство из которых он может даже не использовать, что приводит к плохому опыту пользователя. Этот тест добавит проверка, чтобы ограничить количество расширений файлов, с которыми может связать приложение.

  • Правило зависимости платформы

    Этот тест применяет требование, которое приложения принимают соответствующие зависимости от UWP. Если существует неуместная зависимость, этот тест завершится ошибкой.

    Если существует несоответствие между версией ОС, к приложению применяется и к зависимостям платформы, тест завершится ошибкой. Тест также завершится ошибкой, если приложение ссылается на все предварительные версии библиотек DLL платформы.

  • Проверка межпроцессного взаимодействия

    Этот тест проверяет требования, по которым приложения UWP не могут передавать данные за пределы контейнера приложения компонентам компьютера. Взаимодействие между процессами предназначено только для загруженных на стороне приложений. Приложения, указывающие активируемуюClassAttribute с именем, равным DesktopApplicationPath, завершаются сбоем этого теста.

Корректирующее действие

Просмотрите манифест приложения в соответствии с требованиями, описанными в требованиях к пакету приложений.

тестирование функций Безопасность Windows

Общие сведения

Изменение защиты безопасности Windows по умолчанию может поставить клиентов под повышенный риск.

Сведения о тесте

Проверяет безопасность приложения, запустив двоичный анализатор BinScope.

Тесты Двоичного анализатора BinScope проверяют двоичные файлы приложения, чтобы проверка для написания кода и создания методик, которые делают приложение менее уязвимым к атаке или используются в качестве вектора атаки.

Двоичный анализатор BinScope тестирует проверка для правильного использования следующих функций, связанных с безопасностью.

  • Тесты двоичного анализатора BinScope
  • Подпись частного кода

Тесты двоичного анализатора BinScope

Тесты двоичного анализатора BinScope проверяют двоичные файлы приложения, чтобы проверка для написания кода и создания методик, которые делают приложение менее уязвимым к атаке или используются в качестве вектора атаки.

Двоичный анализатор BinScope проверяет проверка правильного использования этих функций, связанных с безопасностью:

AllowPartiallyTrustedCallersAttribute

Сообщение об ошибке комплекта сертификации приложений Windows: сбой теста APTCACheck

Атрибут AllowPartiallyTrustedCallersAttribute (APTCA) обеспечивает доступ к полностью доверенному коду из частично доверенного кода в подписанных сборках. При применении атрибута APTCA к сборке частично доверенные вызывающие могут получить доступ к этой сборке для жизни сборки, что может компрометировать безопасность.

Порядок действий в случае отрицательного результата теста

Не используйте атрибут APTCA для надежных именованных сборок, если проект не требует его и риски хорошо поняты. В случаях, когда это необходимо, убедитесь, что все API защищены соответствующими требованиями безопасности доступа к коду. APTCA не действует, если сборка является частью приложения универсальная платформа Windows (UWP).

Замечания

Этот тест выполняется только в управляемом коде (C#, .NET и т. д.).

Защита с использованием обработчика исключений /SafeSEH

Сообщение об ошибке комплекта сертификации приложений Windows: сбой теста Сейф SEHCheck

Обработчик исключений запускается, когда приложение сталкивается с исключительным условием, например ошибкой деления на ноль. Так как адрес обработчика исключений хранится в стеке при вызове функции, он может быть уязвим для злоумышленника буферного переполнения, если некоторые вредоносные программы должны были перезаписать стек.

Порядок действий в случае отрицательного результата теста

Включите параметр /SAFESEH в команде компоновщика при создании приложения. Этот параметр включен по умолчанию в конфигурациях выпуска Visual Studio. Убедитесь, что этот параметр включен в инструкциях по сборке для всех исполняемых модулей в приложении.

Замечания

Тест не выполняется для 64-разрядных двоичных файлов или двоичных файлов для набора микросхем ARM, так как они не хранят адреса обработчика исключений в стеке.

Предотвращение выполнения данных

Сообщение об ошибке комплекта сертификации приложений Windows: сбой теста NXCheck

Этот тест проверяет, не выполняет ли приложение код, хранящийся в сегменте данных.

Порядок действий в случае отрицательного результата теста

Включите параметр /NXCOMPAT в команде компоновщика при создании приложения. Этот параметр включен по умолчанию в версиях компоновщика, поддерживающих предотвращение выполнения данных (DEP).

Замечания

Рекомендуется протестировать приложения на ЦП, поддерживающем DEP, и устранить все ошибки, которые вы найдете в результате DEP.

Случайный выбор расположения адресного пространства

Сообщение об ошибке комплекта сертификации приложений Windows: сбой теста DBCheck

Выборка макета адресного пространства (ASLR) загружает исполняемые образы в непредсказуемые расположения в памяти, что затрудняет работу вредоносного программного обеспечения, которое ожидает загрузку программы на определенный виртуальный адрес. Приложение и все компоненты, которые использует приложение, должны поддерживать ASLR.

Порядок действий в случае отрицательного результата теста

Включите параметр /DYNAMICBASE в команде компоновщика при создании приложения. Убедитесь, что все модули, используемые приложением, также используют этот параметр компоновщика.

Замечания

Как правило, ASLR не влияет на производительность. Но в некоторых сценариях существует небольшое улучшение производительности в 32-разрядных системах. Возможно, производительность может снизиться в системе с высокой нагрузкой, которая имеет множество образов, загруженных во многих разных расположениях памяти.

Этот тест выполняется только на приложениях, написанных на неуправляемых языках, таких как C или C++.

Общий раздел PE чтения/записи

Сообщение об ошибке комплекта сертификации приложений Windows: сбой теста SharedSectionsCheck.

Двоичные файлы с записываемыми разделами, помеченными как общие, являются угрозой безопасности. Не создавайте приложения с общими записываемыми разделами, если это не необходимо. Используйте CreateFileMapping или MapViewOfFile, чтобы создать должным образом защищенный объект общей памяти.

Порядок действий в случае отрицательного результата теста

Удалите все общие разделы из приложения и создайте объекты общей памяти, вызвав CreateFileMapping или MapViewOfFile с соответствующими атрибутами безопасности, а затем перестроив приложение.

Замечания

Этот тест выполняется только на приложениях, написанных на неуправляемых языках, таких как C или C++.

AppContainerCheck

Сообщение об ошибке комплекта сертификации приложений Windows: сбой теста AppContainerCheck.

AppContainerCheck проверяет, установлен ли бит appcontainer в заголовке переносимого исполняемого файла (PE) исполняемого двоичного файла. Приложения должны иметь бит appcontainer для всех exe-файлов и всех неуправляемых БИБЛИОТЕК DLL для правильного выполнения.

Порядок действий в случае отрицательного результата теста

Если собственный исполняемый файл завершается сбоем теста, убедитесь, что вы использовали последний компилятор и компоновщик для сборки файла и используете флаг /appcontainer в компоновщике.

Если управляемый исполняемый файл не прошел тест, убедитесь, что для выполнения сборки приложения UWP вы используете последнюю версию компилятора и компоновщика, например Microsoft Visual Studio.

Замечания

Этот тест выполняется во всех ФАЙЛАх EXE и неуправляемых БИБЛИОТЕКАх DLL.

ExecutableImportsCheck

Сообщение об ошибке комплекта сертификации приложений Windows: сбой теста ExecutableImportsCheck.

Переносимый исполняемый образ (PE) завершает этот тест, если его таблица импорта была помещена в раздел исполняемого кода. Это может произойти, если вы включили слияние rdata для образа PE, задав флаг /merge компоновщика Visual C++ как /merge:.rdata=.text.

Порядок действий в случае отрицательного результата теста

Не объединяйте таблицу импорта в раздел исполняемого кода. Убедитесь, что флаг /merge компоновщика Visual C++ не установлен для слияния раздела .rdata с разделом кода.

Замечания

Этот тест выполняется во всех двоичных кодах, кроме исключительно управляемых сборок.

WXCheck

Сообщение об ошибке комплекта сертификации приложений Windows: сбой теста WXCheck.

Проверка помогает убедиться, что двоичный файл не имеет страниц, сопоставленных как записываемые и исполняемые файлы. Это происходит, если в двоичном файле есть записываемый и исполняемый раздел или если SectionAlignment двоичного файла меньше PAGE-SIZE.

Порядок действий в случае отрицательного результата теста

Убедитесь, что в двоичном файле нет записываемого или исполняемого раздела и что значение SectionAlignment двоичного файла как минимум равно его PAGE-SIZE.

Замечания

Этот тест выполняется во всех файлах EXE и в собственных неуправляемых DLL.

Исполняемый файл может иметь записываемый и исполняемый раздел, если он был создан с включенным изменением и продолжением (/ZI). Отключение правки и продолжения приведет к тому, что недопустимый раздел не будет присутствовать.

PAGE-SIZE — это значение SectionAlignment по умолчанию для исполняемых файлов.

Подпись частного кода

Проверяет наличие двоичных файлов подписывания частного кода в пакете приложения.

Общие сведения

Файлы подписывания частного кода должны быть закрытыми, так как они могут использоваться для вредоносных целей в случае, если они скомпрометированы.

Сведения о тесте

Тесты для файлов в пакете приложения с расширением PFX или SNK, которые указывают на включение закрытых ключей подписывания.

Корректирующие действия

Удалите из пакета все ключи подписывания частного кода (например, PFX- и SNK-файлы).

Поддерживаемый тест API

Протестируйте приложение для использования любых несоответствуемых API.

Общие сведения

Для сертификации в Microsoft Store в приложениях необходимо использовать API для приложений UWP (API среды выполнения Windows или поддерживаемые API Win32). Этот тест также определяет ситуации, когда управляемый двоичный файл принимает зависимость от функции вне утвержденного профиля.

Сведения о тесте

  • Позволяют убедиться, что ни один двоичный файл в пакете приложения не использует зависимость от API Win32, который не поддерживается для разработки приложений UWP. Для этого проверяется таблица адресов импорта для двоичного файла.
  • Проверяет, что каждый управляемый двоичный файл в пакете приложения не имеет зависимости от функции вне утвержденного профиля.

Корректирующие действия

Убедитесь, что приложение было скомпилировано как сборка выпуска, а не отладочная сборка.

Примечание. Отладочная сборка приложения не пройдет этот тест, даже если в приложении используются только API-интерфейсы для приложений UWP.

Проверьте сообщения об ошибках, чтобы выявить используемый в программе API, не относящийся к API для приложений UWP.

Примечание. Приложения на C++ в конфигурации отладки не пройдут этот тест, даже если в конфигурации используются только API-интерфейсы из пакета Windows SDK для приложений UWP. Дополнительные сведения об этом см. в статье Альтернативы API Windows в приложениях UWP.

Тесты производительности

Приложение должно быстро реагировать на взаимодействие пользователей и системные команды, чтобы представить быстрый и гибкий интерфейс пользователя.

Характеристики компьютера, на котором выполняется тест, могут повлиять на результаты теста. Пороговые значения тестов производительности для сертификации приложений устанавливаются таким образом, чтобы низкопроизводительные компьютеры соответствовали ожиданиям клиента быстрой и гибкой работы. Чтобы определить производительность приложения, рекомендуется протестировать на низком компьютере с низкой мощностью, например на компьютере с процессором Intel Atom с разрешением экрана 1366x768 (или более поздней версии) и поворотным жестким диском (в отличие от жесткого диска с твердым состоянием).

Создание байтового кода

В качестве оптимизации производительности для ускорения времени выполнения JavaScript файлы JavaScript, заканчивающиеся расширением JS, создают байт-код при развертывании приложения. Это значительно повышает время запуска и текущего времени выполнения для операций JavaScript.

Сведения о тесте

Проверяет развертывание приложения, чтобы убедиться, что все JS-файлы преобразованы в байт-код.

Действие по исправлению

Если этот тест завершается ошибкой, рассмотрите следующее при устранении проблемы:

  • Убедитесь, что ведение журнала событий включено.
  • Убедитесь, что все файлы JavaScript синтаксически допустимы.
  • Убедитесь, что все предыдущие версии приложения удаляются.
  • Исключите определенные файлы из пакета приложения.

Оптимизированные ссылки на привязки

При использовании привязок для оптимизации использования памяти необходимо задать значение true WinJS.Binding.optimizeBindingReferences.

Сведения о тесте

Проверьте значение WinJS.Binding.optimizeBindingReferences.

Действие по исправлению

Задайте для WinJS.Binding.optimizeBindingReferences значение true в приложении JavaScript.

Тест ресурсов манифеста приложения

Проверка ресурсов приложения

Приложение может не установить, если строки или изображения, объявленные в манифесте приложения, неверны. Если приложение устанавливает эти ошибки, логотип приложения или другие изображения, используемые приложением, могут не отображаться правильно.

Сведения о тесте

Проверяет ресурсы, определенные в манифесте приложения, чтобы убедиться, что они присутствуют и допустимы.

Действие по исправлению

Используйте следующую таблицу в качестве руководства.

Сообщение об ошибкеКомментарии

Изображение {имя изображения} определяет квалификаторы Scale и TargetSize; за раз можно определить только один квалификатор.

Изображения можно настроить для разных разрешений.

В фактическом сообщении {image name} содержит имя изображения с ошибкой.

Убедитесь, что каждое изображение определяет масштаб или targetSize в качестве квалификатора.

Не удалось ограничить размер изображения {image name}.

Убедитесь, что все изображения приложений соответствуют соответствующим ограничениям размера.

В фактическом сообщении {image name} содержит имя изображения с ошибкой.

Изображение {имя образа} отсутствует в пакете.

Отсутствует обязательный образ.

В фактическом сообщении {image name} содержит имя отсутствующих изображений.

Образ {имя изображения} не является допустимым файлом образа.

Убедитесь, что все изображения приложений соответствуют соответствующим ограничениям типа формата файла.

В фактическом сообщении {image name} содержит имя недопустимого изображения.

Изображение "BadgeLogo" имеет значение ABGR {value} в позиции (x, y), недопустимое. Пиксель должен быть белым (##FFFFFF) или прозрачным (00######)

Логотип эмблемы — это изображение, которое отображается рядом с уведомлением о значке, чтобы определить приложение на экране блокировки. Это изображение должно быть монохромным (оно может содержать только белые и прозрачные пиксели).

В фактическом сообщении {value} содержит значение цвета в изображении, которое недопустимо.

Изображение "BadgeLogo" имеет значение ABGR {value} в позиции (x, y), недопустимое для белого изображения высокой контрастности. Пиксель должен быть (##2A2A2A) или темнее или прозрачным (00######).

Логотип эмблемы — это изображение, которое отображается рядом с уведомлением о значке, чтобы определить приложение на экране блокировки. Так как в режиме светлой схемы с высокой контрастностью логотип отображается на белом фоне, нужно использовать темную версию логотипа. В белом цвете с высокой контрастностью логотип эмблемы может содержать только пиксели, которые темнее (##2A2A2A) или прозрачны.

В фактическом сообщении {value} содержит значение цвета в изображении, которое недопустимо.

Изображение должно определить по крайней мере один вариант без квалификатора TargetSize. Он должен определить квалификатор масштабирования или оставить scale и TargetSize не указано, что по умолчанию имеет значение Scale-100.

Дополнительные сведения см. в разделе "Адаптивный дизайн 101" для приложений UWP и рекомендаций по ресурсам приложений.

Пакет отсутствует файл resources.pri.

Если в манифесте приложения есть локализуемое содержимое, убедитесь, что пакет приложения содержит допустимый файл resources.pri.

Файл resources.pri должен содержать карту ресурсов с именем, которое соответствует имени пакета {package full name}.

Вы можете увидеть эту ошибку, если манифест изменился, а имя карты ресурсов в файле resources.pri не соответствует имени пакета в манифесте.

В фактическом сообщении {полное имя пакета} содержит имя пакета, которое должен содержать resources.pri.

Чтобы устранить ошибку, необходимо перестроить файл resources.pri, причем самым простым способом может стать перестройка пакета приложения.

Файл resources.pri не должен включать AutoMerge.

MakePRI.exe поддерживает параметр AutoMerge. Значение по умолчанию autoMergeотключено. Когда параметр AutoMerge включен, ресурсы языкового пакета приложения объединяются в единый файл resources.pri во время выполнения. Мы не рекомендуем использовать этот параметр в приложениях, предназначенных для распространения через Microsoft Store. Файл resources.pri приложения, распространяемого через Microsoft Store, должен находиться в корневом каталоге пакета приложения и содержать все настройки языка, поддерживаемые приложением.

Строка {string} не удалось ограничить максимальную длину символов {number}.

Ознакомьтесь с требованиями к пакету приложения.

В фактическом сообщении {string} заменяется строкой с ошибкой и {number} содержит максимальную длину.

Строка {string} не должна содержать пробелы в начале и конечных строках.

Схема элементов в манифесте приложения не разрешает начальные или конечные символы пробелов.

В фактическом сообщении {string} заменяется строкой ошибкой.

Убедитесь, что ни один из локализованных значений полей манифеста в resources.pri не имеет начальных или конечных символов пробелов.

Строка должна быть непустой (больше нуля в длину)

Дополнительные сведения см. в разделе "Требования к пакету приложений".

В файле resources.pri не указан ресурс по умолчанию.

Дополнительные сведения см. в руководстве по ресурсам приложения.

В конфигурации сборки по умолчанию при генерации наборов Visual Studio включает в пакет приложения только ресурсы изображений scale-200. Другие ресурсы помещаются в пакет ресурсов. Вам необходимо либо включить ресурсы изображений scale-200, либо настроить проект таким образом, чтобы он включал имеющиеся ресурсы.

В файле resources.pri не указано значение ресурса.

Убедитесь, что манифест приложения имеет допустимые ресурсы, определенные в resources.pri.

Файл изображения {filename} должен быть меньше 204800 байт.\*\*

Уменьшите размер указанных изображений.

Файл {filename} не должен содержать раздел обратной карты.\*\*

Хотя обратная карта создается во время отладки Visual Studio F5 при вызове makepri.exe, его можно удалить, выполнив makepri.exe без параметра /m при создании файла pri.

\*\* Указывает, что тест был добавлен в комплект сертификации приложений Windows 3.3 для Windows 8.1 и применяется только при использовании этой версии комплекта или более поздней версии.

 

Проверка фирменной символики

Приложения UWP должны быть завершенными и полностью работоспособными. Приложения, использующие образы по умолчанию (из шаблонов или примеров пакетов SDK), представляют плохой пользовательский интерфейс и не могут быть легко идентифицированы в каталоге магазинов.

Сведения о тесте

Тест проверяет, являются ли образы, используемые приложением, не являются ли образы по умолчанию из примеров пакета SDK или из Visual Studio.

Корректирующие действия

Замените изображения по умолчанию более уникальными и репрезентативными.

Тест конфигурации отладки

Проверьте приложение, чтобы убедиться, что это не отладочная сборка.

Общие сведения

Чтобы пройти сертификацию для Microsoft Store, приложения не должны быть скомпилированы для отладки и не должны ссылаться на отладочные версии исполняемого файла. Кроме того, необходимо создать код как оптимизированный для приложения, чтобы пройти этот тест.

Сведения о тесте

Протестируйте приложение, чтобы убедиться, что это не отладочная сборка и не связана с платформами отладки.

Корректирующие действия

  • Выполните сборку рабочего выпуска приложения, прежде чем отправлять его в Microsoft Store.
  • Убедитесь, что установлена правильная версия .NET Framework.
  • Убедитесь, что приложение не связывается с отладочными версиями платформы и что она строится с версией выпуска. Если это приложение содержит компоненты .NET, убедитесь, что установлена правильная версия платформы .NET.

Тест кодирования файлов

Кодировка файлов UTF-8

Общие сведения

Файлы HTML, CSS и JavaScript должны быть закодированы в форме UTF-8 с соответствующей меткой порядка байтов (BOM), чтобы воспользоваться кэшированием байтов и избежать определенных условий выполнения.

Сведения о тесте

Проверьте содержимое пакетов приложений, чтобы убедиться, что они используют правильную кодировку файлов.

Действие по исправлению

Откройте затронутый файл и выберите "Сохранить как " в меню "Файл " в Visual Studio. Щелкните раскрывающийся список рядом с кнопкой "Сохранить " и нажмите кнопку "Сохранить с помощью кодирования". В диалоговом окне "Дополнительные параметры сохранения" выберите параметр Юникода (UTF-8 с подписью) и нажмите кнопку "ОК".

Тестирование уровня компонентов Direct3D

Поддержка уровня компонентов Direct3D

Проверяет приложения Microsoft Direct3D, чтобы убедиться, что они не завершаются сбоем на устройствах с более старым графическим оборудованием.

Общие сведения

Для всех приложений магазина Microsoft Store, использующих Direct3D, должно выполняться правильное преобразование для просмотра или корректная обработка сбоя на графических картах уровня компонентов 9-1.

Пользователи могут менять графическое оборудование устройства после установки приложения. Если вы задаете минимальный уровень компонента выше 9-1, то во время запуска приложение должно проверять, соответствует ли текущее оборудование минимальным требованиям. Если минимальные требования не выполнены, приложение должно отобразить сообщение пользователю с подробными сведениями о требованиях Direct3D. Кроме того, если приложение скачано на устройстве, с которым оно несовместимо, оно должно обнаружить это при запуске и отобразить сообщение клиенту, подробное описание требований.

Сведения о тесте

Этот тест проверяет, точно ли выполняется прорисовка приложений на уровне компонентов 9-1.

Действие по исправлению

Проверьте правильность прорисовки приложения на уровне компонентов 9-1 Direct3D, даже если вы планируете использовать его при более высоком уровне компонентов. Дополнительные сведения см. в статье "Разработка различных уровней функций Direct3D".

Direct3D Trim после приостановки

Примечание. Этот тест применяется только к приложениям UWP, разработанным для Windows 8.1 и более поздних версий.

Общие сведения

Если приложение не вызывает Trim на своем устройстве Direct3D, приложение не освобождает память, выделенную для ее более ранней 3D-работы. Это повышает риск завершения приложений из-за нехватки памяти системы.

Сведения о тесте

Проверяет приложения на соответствие требованиям d3d и гарантирует, что приложения вызывают новый API Trim при обратном вызове Приостановки.

Действие по исправлению

Приложение должно вызывать API Trim в интерфейсе IDXGIDevice3 в любое время, когда оно будет приостановлено.

Тест возможностей приложений

Специальные возможности использования

Общие сведения

Специальные возможности использования предназначены для очень конкретных сценариев. Эти возможности разрешены использовать только учетные записи компании.

Сведения о тесте

Проверьте, объявляет ли приложение любой из следующих возможностей:

  • EnterpriseAuthentication
  • SharedUserCertificates
  • DocumentsLibrary

Если объявлены какие-либо из этих возможностей, тест отобразит предупреждение пользователю.

Корректирующие действия

Рассмотрите возможность специального использования, если приложение не требует его. Кроме того, использование этих возможностей подлежит дополнительным проверкам политики на борту.

проверка метаданных среда выполнения Windows

Общие сведения

Позволяет убедиться, что компоненты, предоставляемые в приложении, соответствуют системе типов среды выполнения Windows.

Сведения о тесте

Позволяет убедиться, что файлы WINMD в пакете соответствуют правилам среды выполнения Windows.

Корректирующие действия

  • Проверка атрибута ExclusiveTo: убедитесь, что классы среды выполнения Windows не реализуют интерфейсы, отмеченные как другой класс ExclusiveTo.
  • Проверка расположения типов: убедитесь, что метаданные для всех типов среды выполнения Windows находятся в WINMD-файле с самым длинным именем, соответствующим пространству имен, в пакете приложения.
  • Проверка чувствительности к регистру имени типа: убедитесь, что все типы среды выполнения Windows имеют уникальные имена, учитывающие регистр, в пакете приложения. Кроме того, убедитесь, что имя типа UWP также не используется в качестве имени пространства имен в пакете приложения.
  • Проверка правильности имен типов: убедитесь, что в глобальном пространстве имен или в пространстве имен Windows верхнего уровня нет типов среды выполнения Windows.
  • Проверка правильности общих метаданных: убедитесь, что компилятор, который вы применяете для создания типов среды выполнения Windows, использует последнюю версию спецификаций среды выполнения Windows.
  • Проверка свойств: убедитесь, что во всех свойствах в классе среды выполнения Windows используется метод Get (методы Set необязательны). Убедитесь, что тип возвращаемого значения метода Get совпадает с типом входного параметра метода Set для всех свойств типов среды выполнения Windows.

Тесты sanity пакета

Тест соответствующих файлов платформы

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

Общие сведения

Этот тест проверяет двоичные файлы в пакете приложения для конфликтов архитектуры. Пакет приложения не должен содержать двоичные файлы, которые нельзя использовать в архитектуре процессора, указанной в манифесте. Включение неподдерживаемых двоичных файлов может привести к сбою приложения или ненужным увеличением размера пакета приложения.

Сведения о тесте

Проверяет, что битность каждого файла в заголовке PE подходит при перекрестной ссылке с объявлением архитектуры процессора пакета приложения.

Действие по исправлению

Следуйте этим рекомендациям, чтобы убедиться, что пакет приложения содержит только файлы, поддерживаемые архитектурой, указанной в манифесте приложения:

  • Если целевая архитектура процессора для приложения не зависит от типа процессора, пакет приложения не должен включать двоичные файлы и файлы образов типов x86, x64 и ARM.

  • Если для приложения используется архитектура целевого процессора x86, пакет приложения должен содержать только файлы двоичного файла или типа образа x86. Если пакет содержит двоичные файлы или файлы образов типов x64 или ARM, он не пройдет тестирование.

  • Если для приложения используется архитектура целевого процессора x64, пакет приложения должен содержать файлы двоичного файла или типа образа x64. Обратите внимание, что в этом случае пакет также может включать файлы x86, но основной интерфейс приложения должен использовать двоичный файл x64.

    Но если пакет содержит двоичные файлы или файлы образов типа ARM либо двоичные файлы или файлы образов только типа x86, он не пройдет тестирование.

  • Если в качестве целевой архитектуры процессора для приложения выбрана архитектура ARM, пакет приложения должен включать только двоичные файлы и файлы образов типа ARM. Если пакет содержит файлы двоичного файла x64 или x86 или типа образа, он завершится сбоем теста.

Поддерживаемый тест структуры каталогов

Позволяет убедиться, что приложения в ходе установки не создают подкаталогов, имена которых длиннее значения MAX-PATH.

Общие сведения

Для компонентов ОС (включая Trident, WWAHost и т. п.) накладывается внутреннее ограничение на длину путей файловой системы (не более MAX-PATH), поэтому такие компоненты не будут работать в случае превышения значения длины.

Сведения о тесте

Позволяет убедиться, что ни один из путей в установочном каталоге приложения не превышает по длине значения MAX-PATH.

Действие по исправлению

Используйте более короткую структуру каталогов и имя файла.

Тест использования ресурсов

Тест фоновой задачи WinJS

Тест фоновой задачи WinJS гарантирует, что приложения JavaScript имеют правильные операторы закрытия, чтобы приложения не потребляли батарею.

Общие сведения

Приложения с фоновыми задачами JavaScript должны вызывать Close() в качестве последней инструкции в фоновой задаче. Приложения, которые не делают это, могут держать систему от возвращения в подключенный режим ожидания и привести к очистке батареи.

Сведения о тесте

Если у приложения нет файла фоновой задачи, указанного в манифесте, тест пройдет. В противном случае тест анализирует файл фоновой задачи JavaScript, указанный в пакете приложения, и ищет оператор Close(). При обнаружении тест пройдет; В противном случае тест завершится ошибкой.

Действие по исправлению

Обновите фоновый код JavaScript для правильного вызова Close().