Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Упаковка определяет, как приложение устанавливается, обновляется и интегрируется с Windows. Приложения WinUI 3 упаковываются по умолчанию, а многие классические приложения, такие как традиционные приложения Win32, выполняются без упаковки. Выбор между упакованным и распакованным приложением влияет на функции, которые можно использовать, модель развертывания, на которую вы полагаетесь, и общие впечатления, которые получают ваши клиенты.
Замечание
Создание нового приложения WinUI 3? Вы уже упакованы по умолчанию. Приведенные ниже рекомендации наиболее важны для разработчиков, которые должны сделать явный выбор , как правило, при переносе существующего приложения, развертывании на корпоративных компьютерах или добавлении Windows функций в приложение, которое изначально не было упаковано.
Почему упаковка приложений имеет значение
Упакованные приложения получают преимущества от чистой модели установки, автоматических обновлений и доступа к функциям Windows, которым требуется удостоверение пакета, включая фоновые задачи, уведомления, расширения контекстного меню, целевые объекты общего доступа и другие точки расширяемости. Упаковка также помогает обеспечить более чистые развертывания, надежные обновления и упрощенное распространение через каналы, такие как средства Microsoft Store и корпоративного развертывания.
Функции, которым требуется идентификатор пакета
Эти функции Windows работают только в приложениях с идентификацией пакета — либо с помощью полного пакетирования MSIX, либо пакетирования с внешним расположением (разреженное пакетирование).
| Функция | Описание |
|---|---|
| Фоновые задачи | Запустите код, если приложение не на переднем плане, например для синхронизации данных, загрузки процессов или реагирования на системные события. |
| Windows API ИИ (Phi Silica, OCR и т. д.) | Доступ к возможностям ИИ на устройстве, таким как локальные языковые модели, распознавание текста и анализ изображений. |
| Push-уведомления (WNS) | Получение уведомлений в режиме реального времени из облачной службы через службу уведомлений Windows. |
| Общий целевой объект | Разрешите пользователям предоставлять доступ к содержимому из других приложений непосредственно через лист общего доступа к системе. |
| Пользовательские расширения контекстного меню | Добавьте действия приложения в меню правой кнопкой мыши в проводнике и других поверхностях оболочки. |
| Сопоставления типов файлов и протоколов | Зарегистрируйте приложение в качестве обработчика для определенных типов файлов или протоколов URI (например, yourapp://). |
| Задачи запуска | Автоматически запустите приложение при входе пользователя в Windows. |
| Службы приложений | Раскрытие фоновых служб, к которым могут обращаться другие приложения, обеспечивая взаимодействие между приложениями. |
Подсказка
Если ваше приложение не имеет пакета и вы сталкиваетесь с ошибками E_ILLEGAL_METHOD_CALL или APPMODEL_ERROR_NO_PACKAGE при вызове API Windows, это связано с требованием удостоверения пакета. Ознакомьтесь с упаковкой с внешним расположением (разреженная упаковка) как с решением, минимизирующим трудности.
Дополнительную информацию см. в разделе Функции, требующие идентификации пакета.
Упаковка моделей на первый взгляд
| Модель | Идентификатор пакета | Монтажник | Магазин, подходящий | лучше всего подходит для |
|---|---|---|---|---|
| Упаковано (MSIX) | ✅ Да | MSIX заменяет установщик | ✅ Да (отправка MSIX) | Новые приложения, публикация в магазине, корпоративное управление мобильными устройствами |
| Упаковка с внешним расположением | ✅ Да | Ваш существующий установщик | ✅ Да (отправка MSI/EXE) | Существующие приложения с собственным установщиком, ISV |
| Распаковка | ❌ Нет | Установщик MSI или EXE (также: XCopy или скрипт для распространения вне магазина приложений) | ✅ Да (отправка MSI/EXE — требуется установщик MSI или EXE с поддержкой автоматической установки) | Широкое распределение Win32, внутренние инструменты |
Упакованные приложения (MSIX)
Упакованные приложения используют MSIX и имеют идентификатор пакета, что необходимо для многих точек расширения Windows. Удостоверение пакета позволяет Windows надежно определять вызывающий интерфейс API платформы, поэтому эти функции зависят от него.
- Упакованные приложения обычно выполняются в упрощенном контейнере приложений с файловой системой и виртуализацией реестра (см. раздел AppContainer для устаревших приложений и приложений MSIX AppContainer).
- Приложения также можно настроить не для запуска в контейнере приложений при необходимости.
- MSIX используется как для упаковки, так и для установки (см. раздел "Что такое MSIX?").
Упаковка с внешним расположением (малоплотная упаковка)
Упаковка с внешними элементами (также называемые разрежёнными пакетами) позволяет зарегистрировать небольшой пакет с идентификатором вместе с существующим приложением без изменения установщика, расположения двоичных файлов или процесса обновления. Она появилась в Windows 10 версии 2004 (сборка 19041).
Это оптимальный вариант для существующих приложений Win32/WPF/WinForms, которые распространяются через собственный установщик (NSIS, WiX, InstallShield и т. д.) и не хотят заменять его на MSIX. Вы регистрируете упрощенный пакет идентификации, двоичные файлы остаются без изменений, и вы получаете доступ ко всем функциям Windows, управляемым удостоверением пакета.
| Функциональность | MSIX | Внешнее расположение |
|---|---|---|
| Заменяет ваш установщик | Да | Нет |
| Двоичные файлы внутри пакета | Да | Нет (внешний) |
| Магазин, подходящий | Да (отправка MSIX) | Да (отправка MSI/EXE) |
| Идентификатор пакета | Да | Да |
| Механизм обновления | Обновление MSIX | Ваш существующий механизм |
→ Полное пошаговое руководство: Идентификация пакета путём упаковки с внешним местоположением
Непакетированные приложения
Неупакованные приложения не используют MSIX и не имеют идентификации пакета, что означает, что они не могут получить доступ к перечисленным выше функциям.
- Они остаются полностью неограниченными в отношении поверхности API, доступа к файловой системе, доступа к реестру, эскалации привилегий и модели процесса.
- Установка и обновления зависят от
.exe,.msi, пользовательских установщиков, ClickOnce или xcopy.
Прежде чем принять решение об отказе от упаковки, сверяйте это с таблицей функций, приведенной выше в вашем плане. Если уведомления, фоновые задачи или API ИИ находятся на горизонте, рассмотрите возможность запуска пакета.
Выбор по сценарию
| Сценарий | Рекомендуемая модель | Сведения |
|---|---|---|
| Независимый разработчик, публикующий в Microsoft Store | Рекомендуемый пакет (MSIX) | MSIX — это рекомендуемый путь — он позволяет управляемые Магазином обновления, разностные загрузки и чистую деинсталляцию. Приложения WinUI 3 упаковываются по умолчанию. Подписывание кода обрабатывается бесплатно в Магазине. → Распространение упаковаемого приложения Приложения Win32 с существующим установщиком MSI или EXE также могут публиковаться в Магазине через путь отправки MSI/EXE, но Магазин не отправляет обновления существующим пользователям— обновления должны обрабатываться приложением или установщиком. |
| Корпоративное приложение, развернутое с помощью Intune или Configuration Manager | Упакованое или внешнее расположение для существующих установщиков | Новые приложения должны использовать MSIX. Существующие приложения с собственным установщиком могут использовать упаковку с внешним расположением. Подписание кода: использовать самоподписанный сертификат (доверенный через Intune, групповую политику или Configuration Manager) или Подписание артефактов Azure (ранее — Trusted Signing). развертывание упакованных приложений → |
| Прямое скачивание с собственным установщиком | Упаковка для внешнего хранения | Зарегистрируйте облегченный идентификационный пакет вместе с существующим установщиком.
Для подписывания кода: требуется доверенный сертификат ЦС для распространения вне Магазина.
Azure Подписывание артефактов (прежнее название — Доверенное подписывание) — это рекомендуемый вариант с более низкой ценой.
→ Предоставление идентификации пакета Кроме того, отправьте существующий установщик в Магазин через путь отправки MSI/EXE. |
| Внутренняя программа или программа разработчика | Распаковка | Самое простое в создании и развертывании. Windows App SDK работает через NuGet, но некоторые функции не будут доступны. |
Подсказка
Не уверены в стоимости подписания программного кода? Публикация пакета MSIX через Microsoft Store означает, что вам не нужно отдельно получать или управлять сертификатом для доверия конечных пользователей, Майкрософт повторно подписывает пакет. Публикация установщика Win32 MSI/EXE через Магазин требует сертификаты, объединённые с УЦ из программы Майкрософт Trusted Root; самозаверенные не принимаются. Для других путей распространения подход к подписи зависит от контекста развертывания — корпоративные среды могут доверять самозаверяющему сертификату через управление устройствами, в то время как для более широкого распространения, не через Магазин, обычно требуется решение для подписывания кода, которому доверяет удостоверяющий центр (ЦС). Azure Подписывание артефактов (ранее Trusted Signing) является рекомендуемым вариантом Майкрософт (см. цены), не требующим аппаратного токена.
Зависимое от фреймворка и самодостаточное развертывание
Отдельно от модели упаковки приложения, использующие Windows App SDK, выбирают способ управления зависимостями среды выполнения.
- Framework-зависимое: на компьютере пользователя должна быть установлена среда выполнения Windows App SDK. Меньший размер приложения; зависит от присутствия среды выполнения или её автоматической установки.
- Автономное: все двоичные файлы Windows App SDK включены в приложение. Больший объем; нет требования к внешней среде выполнения. Хорошо подходит для заблокированных корпоративных сред.
→ Развертывание автономных приложений
Начать работу с MSIX
Если вы создаете классическое приложение Win32 (иногда называется классическим приложением классическое классическое приложение) или приложением .NET , включая Windows Presentation Foundation (WPF) и Windows Forms (WinForms), вы можете упаковывать и развертывать приложение с помощью MSIX.
- Создание пакета MSIX из существующего установщика
- Создание пакета MSIX из исходного кода
- Управление развертыванием MSIX
Другие технологии установки
- Установка и обслуживание приложения
- установщик Windows
- Обзор публикации приложений .NET
- Развертывание .NET Framework и приложений
- Развертывание приложения WPF
- Деплоймент ClickOnce для Windows Forms
Связанный контент
Windows developer