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


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

В этой статье объясняется высокоуровневая архитектура развертывания Windows App SDK. Приведенные ниже понятия применяются главным образом к приложениям, зависящим от платформы Windows App SDK. Приложение, зависящее от фреймворка, зависит от среды выполнения Windows App SDK, присутствующей на целевом компьютере.

Существует два основных варианта распространения приложения, зависимого от платформы:

Метод развертывания приложений Требования
Упакованный — Должно объявлять зависимость от пакета Framework в манифесте пакета.
— API развертывания требуется для распределенных приложений Microsoft Store и рекомендуется для распределенных приложений, отличных от Магазина, чтобы обеспечить установку зависимостей среды выполнения.
Упакованный с внешним местоположением или без упаковки — должен распространять среду выполнения либо с помощью установщика, либо путем установки необходимых пакетов MSIX напрямую.
— Дополнительные требования к среде выполнения: Необходимо инициализировать доступ к среде выполнения Windows App SDK с помощью Bootstrap API.

Дополнительные сведения об этих требованиях см. в следующих статьях:

Ключевые термины

В следующих разделах определяются ключевые термины развертывания Windows App SDK и дополнительные сведения о некоторых из этих пакетов.

Срок Определение
среда выполнения Windows App SDK Пакеты MSIX, необходимые приложению для использования Windows App SDK. Эти пакеты включают: Framework, Main, Singleton и DDLM. В зависимости от используемых функций и метода развертывания приложений на целевом компьютере потребуется определенный набор этих пакетов.
Пакет Framework Содержит двоичные файлы, используемые во время выполнения приложениями (большинство Windows App SDK функций). Фреймворк включает в себя загрузчик, который позволяет приложениям автоматически устанавливать последнюю версию Windows App SDK, обновляемую в соответствии с регулярным графиком выпусков.
основной пакет Пакет, содержащий фоновые задачи для отслеживания динамических зависимостей, и включает автоматическое обновление пакета Framework из Microsoft Store.
пакет Singleton Содержит фоновые задачи, службы, расширения приложений и другие компоненты, не включенные в пакет Платформы, такие как push-уведомления. Обычно это один длительный процесс, который брокерируется между приложениями.
пакет диспетчера динамических зависимостей (DDLM) Запрещает операционной системе выполнять обслуживающие обновления для пакетов MSIX, когда используется приложение, упакованное с внешним расположением, или распакованное приложение.
Загрузчик Локальный двоичный файл приложения, используемый приложениями, упакованными с внешними компонентами, и распакованными приложениями для поиска и загрузки наиболее подходящей версии Windows App SDK, необходимой для работы приложения.
Подготовка Процесс установки и регистрации пакетов (включая файлы и разделы реестра) на уровне всей системы, чтобы устранить необходимость повторной установки другими пользователями. Можно сделать это как частью ОС, так и в процессе установки приложения.
установщик Ссылается на установщик .exe, который развертывает пакеты Framework, Main, Singleton и DDLM.
MSIX Современная технология установщика, которая позволяет пользователям безопасно устанавливать приложение для каждого пользователя прямо из Microsoft Store или с веб-сайта. На корпоративных или общих компьютерах приложения можно установить для всех пользователей с помощью PowerShell и MDM.

Пакет Платформы

При создании приложения, использующего Windows App SDK, приложение ссылается на набор компонентов среды выполнения Windows App SDK, распределенных для конечных пользователей с помощью пакета framework package. Пакет платформы позволяет приложениям получать доступ к компонентам Windows App SDK через единый общий источник на устройстве пользователя, а не объединять их в пакет приложения. Пакет платформы также содержит собственные ресурсы, такие как библиотеки DLL и определения API (регистрация для COM и Windows Runtime). Эти ресурсы выполняются в контексте приложения, поэтому они наследуют возможности и привилегии приложения, а также не утверждают какие-либо возможности или привилегии своих собственных. Дополнительные сведения о зависимостях пакета платформы можно найти в разделе Пакеты платформ MSIX и разделДинамические зависимости.

Пакет платформы Windows App SDK — это пакет MSIX, развернутый для конечных пользователей через Microsoft Store. Его можно легко и быстро обновить с помощью выпусков обслуживания, которые могут включать исправления безопасности и надежности. Все приложения, зависящие от платформы, использующие Windows App SDK, имеют зависимость от общего экземпляра пакета платформы, как показано на следующей схеме.

Диаграмма о том, как приложения получают доступ к пакету платформы Windows App SDK

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

Диаграмма о том, как приложения получают обновления для пакета фреймворка Windows App SDK

Так как совместимость приложений важна для Майкрософт и приложений, зависящих от Windows App SDK, пакет платформы Windows App SDK следует правилам Semantic Versioning 2.0.0. Это означает, что после выпуска версии 1.0 Windows App SDK пакет платформы Windows App SDK гарантирует совместимость между изменениями минорных и патч-версий, а несовместимые изменения будут возникать только между основными обновлениями версий.

Одноэлементный пакет

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

Для активации push-уведомлений для распакованных приложений и упакованных приложений Win32 в версиях Windows ниже 20H1 требуется использовать одноэлементный объект Windows App SDK, поскольку это не поддерживается существующими классами UWP PushNotificationTrigger и ToastNotificationActionTrigger. Будущие Windows App SDK функции, которые не могут поддерживаться пакетом Framework, будут добавлены в пакет Singleton.

Дополнительные требования для распакованных приложений

Загрузчик

Загрузчик — это библиотека, которая должна быть включена в пакет с внешним расположением или распаковкой приложения. Он предоставляет API начальной загрузки (см. Использовать среду выполнения Windows App SDK для приложений, упакованных с внешним расположением или распаковкой), что позволяет распаковывать приложения для выполнения следующих важных задач:

  • Инициализировать диспетчер времени существования динамической зависимости (DDLM) для пакета платформы Windows App SDK.
  • Найдите и загрузите пакет платформы Windows App SDK в граф пакетов приложения.

Для выполнения этих задач пакет NuGet использует автоинициализаторы для подключения бустраппера. Просто задайте <WindowsPackageType>None</WindowsPackageType> в файле project. В расширенных сценариях, если требуется контроль над инициализацией, можно вызвать API начального загрузчика непосредственно в коде запуска приложения (см. Tutorial: используйте API начальной загрузки в приложении, упаковав его с внешним расположением или распаковав его с помощью Windows App SDK), чтобы он смог правильно инициализировать систему для непакованного приложения. Приложение должно использовать API начальной загрузки, прежде чем он сможет использовать Windows App SDK функции, такие как WinUI 3, жизненный цикл приложений, MRT Core и DWriteCore.

Библиотека начального загрузчика в выпуске Windows App SDK 1.0 включает:

  • Microsoft.WindowsAppRuntime.Bootstrap.dll (C++ и C#)
  • Microsoft.WindowsAppRuntime.Bootstrap.Net.dll (оболочка C#)

Динамический диспетчер времени существования зависимостей (DDLM)

Цель DDLM — предотвратить обслуживание пакета платформы Windows App SDK во время использования распакованным приложением. Он содержит сервер, который должен быть инициализирован загрузчиком в начале запуска приложения, чтобы обеспечить эту функциональность.

Для каждой версии и архитектуры пакета платформы Windows App SDK существует один DDLM. Это значит, что на x64 компьютере может быть как версия DDLM x86, так и версия x64 для поддержки приложений обеих архитектур.

Дополнительные требования