Поделиться через


Руководство по развертыванию пакета SDK для приложений, зависящих от платформы

В этой статье приводятся рекомендации по развертыванию упакованных приложений, зависящих от платформы (см. сведения о том, что такое MSIX?), которые используют пакет SDK для приложений Windows. Эквивалентная тема для других параметров упаковки, зависящих от платформы, — это руководство по развертыванию пакета SDK для приложений, зависящих от платформы, с внешним расположением или распаковкой.

Обзор

По умолчанию при создании проекта с помощью одного из шаблонов WinUI 3 в Visual Studio проект настраивается для сборки приложения в пакет MSIX с помощью одного проекта MSIX (см . раздел "Упаковка приложения с помощью однопроекта MSIX") или проекта упаковки приложений Windows (см. статью "Настройка классического приложения для упаковки MSIX в Visual Studio"). Затем можно создать пакет MSIX для приложения с помощью инструкций в статье "Упаковка классического приложения или приложения UWP" в Visual Studio. После создания пакета MSIX для приложения у вас есть несколько вариантов управления развертыванием MSIX.

Дополнительные сведения о пакетах, которые может потребоваться упаковаемого приложения при использовании пакета SDK для приложений Windows, см. в разделе "Архитектура развертывания" для пакета SDK для приложений Windows. К ним относятся пакеты Framework, Main и Singleton , которые подписаны и опубликованы корпорацией Майкрософт. Существует два основных требования к развертыванию упаковаемого приложения:

  1. Разверните пакет платформы sdk для приложений Windows.
  2. Вызов API развертывания.

Необходимые компоненты

Развертывание пакета пакета sdk для приложений Windows

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

Стабильная версия

При установке стабильной версии выпуска (см . заметки о выпуске стабильного канала) пакета NuGet пакета NuGet для Windows AppGet на компьютере разработки и создании проекта с помощью одного из предоставленных шаблонов проектов WinUI 3 созданный манифест пакета содержит элемент PackageDependency , указывающий зависимость от пакета платформы.

Однако при создании пакета приложения вручную с помощью отдельного проекта упаковки приложений Windows необходимо объявить PackageReference в Application (package).wapproj файле, как показано ниже.

<ItemGroup>
   <PackageReference Include="Microsoft.WindowsAppSDK" Version="1.0.1">
       <IncludeAssets>build</IncludeAssets>
   </PackageReference>
</ItemGroup>

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

Предварительная версия

При установке предварительной версии выпуска (см . заметки о выпуске канала предварительной версии) пакета NuGet пакета NuGet для windows AppGet на компьютере разработки, предварительная версия пакета пакета sdk для приложений Windows развертывается во время сборки в качестве зависимости пакета NuGet.

Вызов API развертывания

См. также раздел инициализация пакета SDK для приложений Windows.

API развертывания предоставляется пакетом пакета sdk для приложений Windows и доступен в пространстве имен Microsoft.Windows.ApplicationModel.WindowsAppRuntime . Модель приложения Windows не поддерживает объявление зависимости от пакетов Main и Singleton. Поэтому API развертывания требуется по следующим причинам:

  1. Развертывание пакета Singleton для функций, не входящих в пакет Framework (например, push-уведомлений).
  2. Чтобы развернуть основной пакет, который позволяет автоматически обновлять пакет Framework из Microsoft Store.

Для упакованных приложений, которые не распределены через Магазин, вы, как разработчик отвечает за распространение пакета Framework. Мы рекомендуем вызвать API развертывания, чтобы все критически важные обновления обслуживания были доставлены. Обратите внимание, что для использования функций за пределами пакета Платформы (например, push-уведомлений) необходимо развернуть пакет Singleton (это можно сделать с помощью API развертывания или путем распространения пакетов MSIX с помощью собственного метода установки).

Внимание

В пакете SDK для приложений Windows версии 1.0 только упакованные приложения, которые являются полным доверием или имеют ограниченные возможности packageManagement , имеют разрешение на использование API развертывания для установки зависимостей основного и одноэлементного пакета. Поддержка упакованных приложений с частичным доверием будет поступать в последующих выпусках.

После инициализации процесса приложения необходимо вызвать API развертывания, но прежде чем приложение использует функции среды выполнения пакета SDK для Приложений Windows, использующие пакет Singleton (например, push-уведомления). Основными методами API развертывания являются статические методы GetStatus и инициализация класса DeploymentManager.

  • Метод GetStatus возвращает текущее состояние развертывания среды выполнения пакета SDK для приложений Windows, загруженной в данный момент. Используйте этот метод, чтобы определить, требуется ли установка пакетов среды выполнения пакета sdk для приложений Windows, прежде чем текущее приложение сможет использовать функции пакета SDK для приложений Windows.
  • Метод Initialize проверяет, присутствуют ли все необходимые пакеты в минимальной версии, необходимой для среды выполнения пакета SDK для приложений Windows, загруженной в данный момент. Если отсутствуют зависимости пакетов, метод пытается зарегистрировать эти отсутствующие пакеты. Начиная с пакета SDK для приложений Windows 1.1, метод Initialize также поддерживает возможность принудительного развертывания пакетов среды выполнения пакета SDK для приложений Windows. Это завершает все процессы для пакетов среды выполнения Main и Singleton , поэтому прерывает их службы (например, push-уведомления не будут доставлять уведомления в течение этого времени).

Пример приложения API развертывания

Дополнительные инструкции по использованию методов GetStatus и Initialize класса DeploymentManager см. в доступном примере приложения.

Устранение ошибок установки

Если API развертывания обнаруживает ошибку во время установки пакетов среды выполнения пакета sdk для приложений Для Windows, он возвращает код ошибки, описывающий проблему.

Например, если ваше приложение не является полным доверием или не имеет возможности packageManagement с ограниченным доступом , вы получите код ошибки ACCESS_DENIED . Чтобы просмотреть другие коды ошибок, которые могут возникнуть, и их возможные причины, см. статью "Устранение неполадок в упаковке, развертывании и запросе приложений Windows".

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

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