Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье объясняется высокоуровневая архитектура развертывания пакета SDK для приложений Windows. Основные концепции, приведенные ниже, относятся в основном к приложениям, зависящим от набора разработки приложений Windows. Приложение, зависящее от платформы, зависит от среды выполнения Windows App SDK, присутствующей на целевом компьютере.
Существует два основных варианта распространения приложения, зависимого от платформы:
Метод развертывания приложений | Требования |
---|---|
Упакованный | — Должно объявлять зависимость от пакета Framework в манифесте пакета. — API развертывания требуется для распределенных приложений Microsoft Store и рекомендуется для распределенных приложений, отличных от Магазина, чтобы обеспечить установку зависимостей среды выполнения. |
Упакованный с внешним местоположением или без упаковки | — должен распространять среду выполнения либо с помощью установщика, либо путем установки необходимых пакетов MSIX напрямую. — Дополнительные требования к среде выполнения. Необходимо инициализировать доступ к среде выполнения пакета SDK для приложений Windows с помощью API начальной загрузки. |
Дополнительные сведения об этих требованиях см. в следующих статьях:
- Руководство по развертыванию Windows App SDK для пакетированных приложений, зависящих от платформы
- Руководство по развертыванию Windows App SDK для приложений, зависящих от каркаса, упакованных с внешним местоположением или без упаковки.
Ключевые термины
В следующих разделах определяются ключевые термины развертывания пакета SDK для приложений Windows и дополнительные сведения о некоторых из этих пакетов.
Срок | Определение |
---|---|
Среда выполнения SDK для приложений Windows | Пакеты MSIX, необходимые приложению для использования пакета SDK для приложений Windows. Эти пакеты включают: Framework, Main, Singleton и DDLM. В зависимости от используемых функций и метода развертывания приложений на целевом компьютере потребуется определенный набор этих пакетов. |
Пакет Framework | Содержит двоичные файлы, используемые во время выполнения приложениями (большинство функций пакета SDK для приложений Windows). Фреймворк включает компонент начальной загрузки, который позволяет приложениям автоматически устанавливать последнюю версию 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, которые распространяются конечным пользователям через фреймворк-пакет . Пакет платформы позволяет приложениям получать доступ к компонентам пакета SDK для приложений Windows через один общий источник на устройстве пользователя, а не объединить их в пакет приложения. Пакет платформы также содержит собственные ресурсы, такие как библиотеки DLL и определения API (регистрация среды выполнения COM и Windows). Эти ресурсы выполняются в контексте приложения, поэтому они наследуют возможности и привилегии приложения, а также не утверждают какие-либо возможности или привилегии своих собственных. Дополнительные сведения о зависимостях пакета платформы можно найти в разделе Пакеты платформ MSIX и разделДинамические зависимости.
Пакет платформы Windows App SDK — это пакет MSIX, который развертывается для конечных пользователей через Microsoft Store. Его можно легко и быстро обновить с помощью выпусков обслуживания, которые могут включать исправления безопасности и надежности. Все приложения, зависящие от платформы, использующие пакет SDK для приложений Windows, имеют зависимость от общего экземпляра пакета платформы, как показано на следующей схеме.
При обслуживании новой версии пакета пакета sdk для приложений Windows все приложения, зависящие от платформы, обновляются до новой версии без необходимости повторно распространять копию. Обновления Windows до последней версии фреймворков происходят по мере их выхода, а приложения при перезапуске автоматически используют последнюю версию пакета фреймворков. Старые версии пакетов платформы не будут удалены из системы до тех пор, пока они больше не работают или активно используются приложениями в системе.
Так как совместимость приложений важна для Майкрософт и приложений, зависящих от пакета SDK для приложений Windows, пакет пакета SDK для приложений Windows следует правилах семантической версии 2.0.0. Это означает, что после выпуска версии 1.0 пакета SDK для приложений Windows пакет SDK для приложений Windows гарантирует совместимость между небольшими и исправляющими изменениями версии, а критические изменения будут возникать только между обновлениями основных версий.
Одноэлементный пакет
одноэлементный пакет гарантирует, что один долго работающий процесс может обрабатывать службы, используемые в нескольких приложениях, которые могут работать в различных версиях SDK для приложений Windows.
Синглтон Windows App SDK необходим для включения push-уведомлений для распакованных приложений и упакованных приложений Win32 на версиях Windows ниже 20H1, которые не могут поддерживаться существующими классами PushNotificationTrigger и ToastNotificationActionTrigger. Будущие функции пакета SDK для приложений Windows, которые не могут поддерживаться пакетом Framework, будут добавлены в пакет Singleton.
Дополнительные требования для распакованных приложений
Загрузчик
Загрузчик — это библиотека, которая должна быть включена в пакет с внешним расположением или распаковкой приложения. Он предоставляет API начальной загрузки (см. раздел Использование среды выполнения пакета SDK для приложений Windows, упакованных с внешним расположением или распаковкой), что позволяет неупакованным приложениям выполнять следующие важные задачи:
- Инициализировать управляющий жизненным циклом динамических зависимостей (DDLM) для фреймворка Windows App SDK.
- Найдите и загрузите пакет платформы Windows App SDK в граф пакетов приложения.
Для выполнения этих задач пакет 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 — предотвратить обслуживание пакета фреймворка Windows App SDK во время его использования распакованным приложением. Он содержит сервер, который должен быть инициализирован загрузчиком в начале запуска приложения, чтобы обеспечить эту функциональность.
Существует один DDLM для каждой версии и архитектуры фреймворк-пакета Windows App SDK. Это значит, что на x64
компьютере может быть как версия DDLM x86
, так и версия x64
для поддержки приложений обеих архитектур.
Дополнительные требования
- Для упакованных приложений зависимость пакета платформы VCLibs является обязательным требованием. Дополнительную информацию см. в пакетах среды выполнения C++ для платформы Desktop Bridge.
- Для приложений, не упакованных, Visual C++ Redistributable является обязательным требованием. Дополнительные сведения см. в разделе Распространяемый пакет Microsoft Visual C++ с последними поддерживаемыми загрузками.
- C#. Сведения о среде выполнения .NET см. в разделе Скачивание.NET.
Связанные темы
Windows developer