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

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

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

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

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

Основные термины

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

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

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

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

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

Diagram of how apps access the Windows App SDK framework package

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

Diagram of how apps get updates to the Windows App SDK framework package

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

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

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

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

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

Начальный загрузчик

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

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

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

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

  • 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 версия DDLM для поддержки приложений обеих архитектур.

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