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


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

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

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

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

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

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

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

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

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

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

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

Схема доступа приложений к пакету пакета sdk для приложений Для Windows

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

Схема получения обновлений в пакете пакета sdk для приложений Для Windows

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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