Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Каждый выпуск пакета SDK Windows добавляет новые функциональные возможности, которые можно использовать. Однако не все клиенты обновляют свои устройства до последней версии Windows одновременно. Вы хотите, чтобы ваше приложение работало на как можно более широком спектре устройств и при этом использовало новые функции, когда они доступны.
Необходимые условия
- Windows App SDK 1.0 или более поздней версии
- Visual Studio 2022 или более поздней версии с рабочей нагрузкой разработки приложений Windows
Обзор
Выполните следующие три действия, чтобы поддерживать самый широкий спектр устройств Windows:
- Настройте проект Visual Studio для назначения последних API. Это влияет на то, к чему компилятор имеет доступ во время сборки.
- Выполняйте проверки во время выполнения, чтобы вызывать только те API, которые доступны на устройстве, на котором работает ваше приложение.
- Протестируйте приложение на минимальной версии и целевой версии Windows.
Настройка проекта Visual Studio
Первым шагом в поддержке нескольких версий Windows является указание версий целевой и минимально поддерживаемой ОС/SDK в проекте Visual Studio.
- Целевая платформа — версия SDK, с использованием которой Visual Studio компилирует код приложения. Все API и ресурсы в этой версии пакета SDK доступны в коде приложения во время компиляции.
- Минимальная — версия пакета SDK, поддерживающая последнюю версию ОС, которую может запустить ваше приложение.
Во время выполнения приложение выполняется с версией ОС, в которой она развертывается. Приложение создает исключения, если вы используете API, которые недоступны в этой версии. Используйте проверки среды выполнения для вызова правильных API, как описано далее в этой статье.
Tip
Visual Studio не предупреждает о совместимости API. Вы несете ответственность за тестирование и проверку правильности работы приложения во всех версиях ОС между минимальной и целевой версией.
При создании проекта в Visual Studio задайте поддерживаемые приложением целевые и минимальные версии. По умолчанию целевая версия является самой высокой установленной версией пакета SDK, а минимальная версия — самый низкий установленный пакет SDK.
Чтобы изменить минимальную и целевую версии для существующего проекта, перейдите в раздел Project>Properties>Application>Targeting.
Выполнение проверок API
Ключом к адаптивным приложениям версии является сочетание контрактов API и класса ApiInformation . Этот класс позволяет определить, присутствует ли указанный контракт API, тип или член, чтобы можно было безопасно выполнять вызовы API на различных устройствах и версиях ОС.
Контракты API
Набор API в семействе устройств разбивается на подразделения, известные как контракты API.
ApiInformation.IsApiContractPresent Используйте метод для проверки наличия контракта API. Это полезно, если требуется проверить наличие множества API, которые входят в одну и ту же версию контракта API.
bool isScannerContractPresent =
Windows.Foundation.Metadata.ApiInformation.IsApiContractPresent(
"Windows.Devices.Scanners.ScannerDeviceContract", 1);
Контракт API представляет собой функцию — набор связанных API, которые вместе предоставляют определенную возможность. Платформа, реализующая любой API в контракте API, должна реализовывать каждый API в этом контракте. Проверьте контракт один раз, а затем безопасно вызовите любой из его API.
Самый большой и наиболее часто используемый контракт , Windows.Foundation.UniversalApiContractкоторый содержит большинство API-интерфейсов среда выполнения Windows. Список доступных контрактов см. в разделе Пакеты SDK расширений семейств устройств и контракты API.
Адаптивный код версии и условный XAML
ApiInformation Используйте класс в условии в коде, чтобы проверить наличие API перед вызовом. Такие методы, как IsTypePresent, IsEventPresentIsMethodPresentи IsPropertyPresent позволяют проверять степень детализации.
Дополнительные сведения и примеры см. в адаптивном коде версии.
Если минимальная версия приложения — сборка 17763 (версия 1809) или более поздняя, можно использовать условный КОД XAML для задания свойств и создания экземпляров объектов в разметке без написания кода. Условный XAML позволяет использовать ApiInformation.IsApiContractPresent непосредственно в разметке.
Дополнительные сведения и примеры см. в разделе "Условный КОД XAML".
Протестируйте ваше адаптивное к версиям приложение
При использовании адаптивного кода версии или условного XAML протестируйте приложение на устройстве с минимальной версией и на устройстве с целевой версией Windows.
Вы не можете протестировать все пути условного кода на одном устройстве. Разверните и протестируйте приложение на удаленном устройстве (или виртуальной машине) с минимальной поддерживаемой версией ОС, чтобы убедиться, что все пути кода работают правильно.
Связанные материалы
Windows developer