Руководство по развертыванию SDK приложений Windows для пакетных приложений, зависящих от инфраструктуры
В этой статье приводятся рекомендации по развертыванию упакованных приложений, зависящих от платформы (см. что такое MSIX?) с помощью пакета SDK для приложений Windows. Эквивалентная тема для других параметров упаковки приложений, зависящих от платформы, — это руководство по развертыванию Windows App SDK для таких приложений с внешним расположением или без упаковки.
Обзор
По умолчанию при создании проекта с использованием одного из шаблонов WinUI 3 в Visual Studioваш проект настраивается для сборки приложения в пакет MSIX с помощью однофайлового проекта MSIX (см. Упаковка приложения с использованием однофайлового проекта MSIX) или проекта упаковки приложений Windows (см. Настройка настольного приложения для упаковки MSIX в Visual Studio). Затем вы можете создать пакет MSIX для вашего приложения, следуя инструкциям в Пакет настольного приложения или приложения UWP в Visual Studio. После сборки пакета MSIX для приложения вы можете управление развертыванием MSIX.
Для получения дополнительной информации о пакетах, которые могут понадобиться вашему упакованному приложению при использовании Windows App SDK, см. статью Архитектура развертывания Windows App SDK. К ним относятся пакеты Framework, Mainи singleton; которые подписаны и опубликованы корпорацией Майкрософт. Существует два основных требования к развертыванию упаковаемого приложения:
Необходимые условия
- Для упакованных приложений зависимость пакета платформы VCLibs является обязательным требованием. Дополнительные сведения см. в пакетах среды выполнения C++ для Desktop Bridge.
- C#. Требуется .NET 6 или более поздней версии. Дополнительные сведения см. в разделе загрузки .NET.
Развертывание пакета сред программирования Windows App SDK
Пакет SDK для приложений Windows содержит двоичные файлы, используемые во время выполнения, и устанавливается вместе с вашим приложением. Платформа имеет различные требования к развертыванию для различных каналов пакета SDK для приложений Windows.
Стабильная версия
При установке стабильной версии выпуска (см. заметки о выпуске стабильного канала ) пакета Windows App SDK NuGet на компьютере разработчика и создании проекта с использованием одного из предоставленных шаблонов проектов WinUI 3, созданный манифест пакета содержит элемент PackageDependency, указывающий зависимость от пакета платформы.
Однако при создании пакета приложения вручную с помощью отдельного проекта упаковки приложений Windows необходимо объявить PackageReference в файле Application (package).wapproj
, как показано ниже.
<ItemGroup>
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.0.1">
<IncludeAssets>build</IncludeAssets>
</PackageReference>
</ItemGroup>
Эта зависимость пакета гарантирует, что пакет Framework устанавливается при развертывании приложения на другом компьютере.
Предварительная версия
При установке предварительной версии (см. заметки о выпуске канала предварительной версии ) пакета NuGet для Windows App SDK на компьютере разработки, предварительная версия пакета Windows App SDK развертывается во время сборки как зависимость пакета NuGet.
Вызов API развертывания
См. также Инициализация Windows App SDK.
API развертывания предоставляется пакетом платформы sdk для приложений Для Windows и доступен в пространстве имен пространстве имен Microsoft.Windows.ApplicationModel.WindowsAppRuntime. Модель приложения Windows не поддерживает объявление зависимости от пакетов Main и Singleton. Поэтому API развертывания требуется по следующим причинам:
- Развертывание пакета Singleton для функций, не входящих в пакет Framework (например, push-уведомлений).
- Для развертывания основного пакета, который необходимо установить для автоматического обновления пакета Framework из магазина Microsoft.
Для пакетных приложений, которые не распространяются через Магазин, вы, как разработчик, несете ответственность за распространение пакета Framework. Мы рекомендуем вызвать API развертывания, чтобы все критически важные обновления обслуживания были доставлены. Обратите внимание, что для использования функций за пределами пакета Платформы (например, push-уведомлений) необходимо развернуть пакет Singleton (это можно сделать с помощью API развертывания или путем распространения пакетов MSIX с помощью собственного метода установки).
Важный
В Windows App SDK версии 1.0 только упакованные приложения, которые обладают полным доверием или имеют ограниченные привилегии packageManagement, имеют разрешение на использование API развертывания для установки зависимостей основных и одноэлементных пакетов. Поддержка упакованных приложений с частичным доверием будет добавлена в будущих выпусках.
После инициализации процесса приложения необходимо вызвать API развертывания, но прежде чем приложение использует функции среды выполнения пакета SDK для Приложений Windows, использующие пакет Singleton (например, push-уведомления). Основными методами API развертывания являются статические методы GetStatus и Initialize класса DeploymentManager.
- Метод getStatus возвращает текущее состояние развертывания среды выполнения пакета SDK для приложений Windows, загруженной в данный момент. Используйте этот метод, чтобы определить, требуется ли установка пакетов среды выполнения пакета sdk для приложений Windows, прежде чем текущее приложение сможет использовать функции пакета SDK для приложений Windows.
- Метод инициализации проверяет наличие всех необходимых пакетов к минимальной версии, необходимой для среды выполнения пакета SDK для приложений Windows, загруженной в данный момент. Если отсутствуют зависимости пакетов, метод пытается зарегистрировать эти отсутствующие пакеты. Начиная с пакета SDK для приложений Windows 1.1, метод Initialize также поддерживает возможность принудительного развертывания пакетов среды выполнения пакета SDK для приложений Windows. Это завершает все процессы для пакетов среды выполнения Main и Singleton, и поэтому прерывает их службы (например, push-уведомления не будут доставляться в этот период).
Образец приложения API для развертывания
Дополнительные руководства по использованию методов GetStatus и Initialize класса DeploymentManager см. в доступном примере приложения.
Устранение ошибок установки
Если API развертывания обнаруживает ошибку во время установки пакетов среды выполнения Windows App SDK, он возвращает код ошибки, описывающий проблему.
Например, если ваше приложение не имеет полного доверия или не обладает ограниченной возможностью packageManagement, то вы получите код ошибки ACCESS_DENIED. Чтобы просмотреть другие коды ошибок, которые могут возникнуть, и их возможные причины, см. статью об устранении неполадок, связанных с упаковкой, развертыванием и запросами приложений Windows.
Если код ошибки не предоставляет достаточно сведений, дополнительные диагностические сведения можно найти в подробных журналах событий (см. получение диагностических сведений).
Если возникают ошибки, которые не удается диагностировать, отправьте проблему в репозитории WindowsAppSDK GitHub с кодом ошибки и журналами событий, чтобы мы могли изучить проблему.
Связанные разделы
Windows developer