Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Создание нового приложения WinUI 3? Вы уже упакованы по умолчанию. Эта страница предназначена для разработчиков, которые должны сделать явный выбор , как правило, при переносе существующего приложения, развертывании на корпоративных компьютерах или добавлении функций Windows в приложение, которое изначально не было упаковано.
Приложения Windows можно упаковывать, распаковывать или где-то между ними. Правильный выбор зависит от двух вещей: способ распространения приложения и необходимых функций Windows.
Начните с сценария
Я независимый разработчик, публикующий в Microsoft Store
Используйте упакованое приложение MSIX. Для магазина требуется упаковка MSIX. Приложения WinUI 3, созданные в Visual Studio, упаковываются по умолчанию— вам не нужно вносить изменения. Вы получаете чистые установки, автоматические обновления и доступ ко всем функциям, включаемых в пакет, например уведомлениям и фоновым задачам.
→ Распространение упаковаемого приложения
"Я создаю корпоративное приложение, развернутое с помощью Intune или Configuration Manager"
Начнем с пакета; рассмотрите возможность использования внешнего размещения, если у вас уже есть существующий установщик.
- Если вы создаете новое приложение, используйте MSIX. Она бесшовно интегрируется с Intune и SCCM/ConfigMgr и предоставляет полное идентифицирование пакета.
- Если у вас есть существующее приложение с собственным установщиком , который нельзя заменить, используйте упаковку с внешним расположением. Это дает индикацию идентичности пакета приложения и доступ к функциям, в том числе уведомлениям и фоновым задачам, без изменения способа или места развертывания.
- Если вашему приложению действительно не нужны функции, требующие проверки личности Windows, и вы контролируете среду развертывания, распакованные приложения работают, но как только вы попытаетесь добавить уведомления или функции, основанные на искусственном интеллекте, вы столкнетесь с проблемами.
→ развертывание упакованных приложений (пакет SDK для приложений Для Windows)
Предоставить идентификацию пакета путем интеграции с внешним расположением
Я являюсь независимым поставщиком программного обеспечения (ISV), предоставляющим прямую загрузку с моим собственным установщиком.
Используйте упаковку с внешним расположением (ранее называемые разреженными пакетами).
Это оптимальный вариант для существующих приложений Win32/WPF/WinForms, которые устанавливаются с помощью собственного установщика (NSIS, WiX, InstallShield и т. д.) и не хотят заменять его на MSIX. Вы регистрируете легкий пакет идентификаций вместе с существующим установщиком, ваши двоичные файлы остаются на своих местах, и вы разблокируете полный набор функций Windows, защищенных удостоверением пакета.
Пользователи не увидят никаких изменений в том, как они устанавливают или обновляют приложение. Вы получаете функции Windows; они получают знакомый интерфейс.
Присвоить идентификатор пакета посредством упаковки с внешним расположением
Добавление пакета идентификации в Visual Studio
"Я создаю внутреннюю программу или программу разработчика"
В непакованном виде допустимо — с оговорками.
Приложения без упаковки являются наиболее простыми для создания и развертывания: xcopy, robocopy или простой скрипт – всё, что вам нужно. Пакет SDK для приложений Windows работает в распакованных приложениях с помощью NuGet. Но некоторые функции не будут доступны, и если позже вы решите, что они вам нужны, обратная идентификация пакета является нетривиальной задачей.
Прежде чем принять решение о работе без упаковки, сверяйтесь с таблицей функций ниже в вашей дорожной карте. Если уведомления, фоновые задачи или API ИИ находятся на горизонте, рассмотрите возможность запуска пакета.
Упаковка моделей на первый взгляд
| Модель | Идентификатор пакета | Монтажник | Магазин, подходящий | лучше всего подходит для |
|---|---|---|---|---|
| Упаковано (MSIX) | ✅ Да | MSIX заменяет установщик | ✅ Да | Новые приложения, публикация в магазине, корпоративное управление мобильными устройствами |
| Упаковка с внешним расположением | ✅ Да | Ваш существующий установщик | ❌ Нет | Существующие приложения с собственным установщиком, ISV |
| Распаковка | ❌ Нет | XCopy / скрипт | ❌ Нет | Внутренние средства, служебные программы разработки, простые сценарии |
Функции, которым требуется идентификатор пакета
Эти функции Windows работают только в приложениях с идентификатором пакета — либо с помощью полной упаковки MSIX, либо упаковка с внешним размещением.
| Функция | Примечания |
|---|---|
| Уведомления о приложении (всплывающее уведомление) |
AppNotificationManager требуется идентификатор пакета |
| Фоновые задачи | Для регистрации требуется идентификатор пакета |
| API Windows AI (Phi Silica, OCR и т. д.) | Для большинства API Windows AI требуется удостоверение пакета |
| Push-уведомления (WNS) | Регистрация канала требует идентификации пакета |
| Общий целевой объект | Объявлено в манифесте пакета |
| Пользовательские расширения контекстного меню | Объявлен в манифесте пакета |
| Сопоставления типов файлов и протоколов | Для богатых ассоциаций требуется идентификатор пакета |
| Задачи запуска | Требуется идентификация пакета |
| Службы приложений | Требуется идентификация пакета |
Подсказка
Если вы используете неупакованную версию и сталкиваетесь с ошибками E_ILLEGAL_METHOD_CALL или APPMODEL_ERROR_NO_PACKAGE при вызове API Windows, это требование идентификатора пакета. Рассмотрите упаковку с внешним расположением как наименее проблемное решение.
Упаковка для внешнего хранения
Упаковка с внешним расположением (также называемая разреженными пакетами) позволяет зарегистрировать небольшой пакет идентификатора наряду с вашим существующим приложением, не изменяя установщик, местоположения двоичных файлов или процесс обновления. Она появилась в Windows 10 версии 2004 (сборка 19041).
Вы предоставляете:
- Манифест пакета (XML-файл, описывающий идентификатор приложения)
- Подписанный
.msix, содержащий только манифест (без двоичных файлов)
Ваш существующий установщик регистрирует этот пакет идентичности, и Windows считает ваше приложение обладающим идентичностью пакета с этого момента.
Это отличается от полной упаковки MSIX:
| MSIX | Внешнее расположение | |
|---|---|---|
| Заменяет ваш установщик | Да | Нет |
| Двоичные файлы внутри пакета | Да | Нет (внешний) |
| Магазин, подходящий | Да | Нет |
| Идентификатор пакета | Да | Да |
| Механизм обновления | Обновление MSIX | Ваш существующий механизм |
→ Полное пошаговое руководство: Идентификация пакета путём упаковки с внешним местоположением
Зависимое от фреймворка и самодостаточное развертывание
Отдельно от модели упаковки приложения, использующие пакет SDK для приложений Windows, выбирают способ переноса зависимостей среды выполнения:
- Зависящая от платформы среда выполнения пакета SDK для приложений Windows должна быть установлена на компьютере пользователя. Меньший размер приложения; зависит от присутствия среды выполнения или её автоматической установки.
- Самодостаточный: все двоичные файлы Windows App SDK поставляются с вашим приложением. Больший объем; нет требования к внешней среде выполнения. Хорошо подходит для заблокированных корпоративных сред.
→ Развертывание автономных приложений
Связанный контент
Windows developer