Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе представлены варианты и рекомендации по развертыванию разных типов приложений для Windows.
Преимущества и недостатки упаковки приложения
Ваше первое решение будет в том, следует ли упаковать приложение.
-
Упакованое приложение. Пакетные приложения — это единственный тип, который имеет идентификатор пакета во время выполнения. Удостоверение пакета необходимо для многих функций расширяемости Windows, включая фоновые задачи, уведомления, живые плитки, настраиваемые расширения контекстного меню и целевые объекты для общего доступа. Это связано с тем, что операционная система (ОС) должна иметь возможность идентифицировать вызывающий объект соответствующего API. См. функции пакета, требующие удостоверения.
- Обычно процесс упаковаемого приложения выполняется внутри упрощенного контейнера приложений и изолирован с помощью виртуализации файловой системы и реестра (см. раздел AppContainer для устаревших приложений и приложений MSIX AppContainer). Но вы можете настроить упакованое приложение, чтобы не запускаться в контейнере приложений.
- Упаковаемое приложение упаковано с помощью технологии MSIX (см. раздел "Что такое MSIX?").
- Упакованое приложение с внешним расположением. Но поскольку некоторые существующие приложения еще не готовы ко всему их содержимому в пакете MSIX, существует возможность упаковать приложение с учетом внешнего расположения. Это позволяет приложению иметь удостоверение пакета, что обеспечивает возможность использовать те функции, которые требуют этого. Дополнительные сведения см. в разделе «Определение идентичности пакета через упаковку с внешним расположением».
- Упаковаемое приложение также устанавливается с помощью MSIX. Но если вы решите использовать внешнее расположение, то это можно рассматривать как модель "установщик, предоставляемый пользователем". Таким образом, с этим параметром будет работать некоторый установщик. Это по сути гибридный вариант между упакованным и распакованным приложением.
- Неупакованное приложение. Вы можете полностью отказаться от использования MSIX, создав распакованное приложение. Но помните, что у непакованного приложения нет удостоверения пакета во время выполнения. Поэтому он пропускает некоторые функции Windows (см . сведения о функциях, требующих удостоверения пакета).
Каждый тип приложения можно опубликовать в Microsoft Store и установить таким образом или с помощью установщика приложений Windows.
Внимание
Рекомендуется упаковать приложение и настроить его для запуска в контейнере приложений. Это будет простой, современный и надежный интерфейс установки и обновления для ваших клиентов; и она будет безопасной во время выполнения.
Упаковано (и при желании выполняется в контейнере приложения) | Упакованный с внешним местоположением или без упаковки | |
---|---|---|
Преимущества | Предоставляет пользователям простой способ установки, удаления и обновления приложения. Удаление программы выполняется корректно — при удалении приложения система возвращается к состоянию, в котором она была до установки — не остаётся никаких следов. Это приложение также поддерживает добавочные и автоматические обновления. И Microsoft Store оптимизирован для работы с приложениями такого типа (хотя их можно использовать как в Магазине, так и вне его). Вы получаете преимущества обладания идентификацией пакета. |
С помощью этих параметров ваше приложение не имеет ограничений в отношении вида приложения, API, которые оно может вызывать, и его доступа к реестру и файловой системе. Упаковка с внешним местоположением означает, что вы получаете преимущества наличия идентичности пакета. |
Недостатки | Ваше приложение ограничено как по типу, так и по возможностям, которые оно может предоставлять в системе. Например, служба NT невозможна. Параметры обмена данными между процессами (IPC) ограничены; Привилегированный или повышенный доступ ограничен, если вы публикуете в Microsoft Store; Доступ к файлам и реестрам виртуализирован (но также см . гибкую виртуализацию). В некоторых ситуациях корпоративные политики могут отключить обновления, отключив Microsoft Store. | После удаления приложения с помощью этих параметров существует риск накопления устаревших данных конфигурации и программного обеспечения. Это может быть проблемой для клиента и системы. Приложение обычно устанавливается и обновляется с использованием файлов .exe или .msi , либо посредством других решений для установки и обновления, таких как пользовательский установщик, ClickOnce или развертывание xcopy.Неупакованное приложение лишено преимуществ, связанных с идентификатором пакета. |
Дополнительные сведения о расположении установки пакета, рабочем каталоге и виртуализации файлов и реестра см. в статье о том, как упакованные классические приложения работают в Windows.
Использование пакета SDK для приложений для Windows
После принятия решения о том, следует ли упаковать приложение, вы можете выбрать, следует ли использовать пакет SDK для приложений Windows в приложении. См. статью с общими сведениями о развертывании пакета SDK для приложений для Windows.
Настольные приложения Win32 и .NET
При создании классического приложения Win32 или приложения .NET (в том числе Windows Presentation Foundation (WPF) или Windows Forms (WinForms)) для упаковки и развертывания приложения можно использовать MSIX.
- Создание пакета MSIX из существующего установщика
- Создание пакета MSIX из исходного кода
- Управление развертыванием MSIX
Кроме того, вы можете развертывать такие типы приложений с помощью любых других технологий.
- Установка и обслуживание приложения
- Установщик Windows
- Общие сведения о публикации приложений .NET
- Развертывание .NET Framework и приложений
- Развертывание приложения WPF
- Развертывание ClickOnce для форм Windows Forms
UWP-приложения
Приложения UWP всегда упаковываются и развертываются с помощью MSIX.
- Обзор упаковки приложений UWP
- Упаковка приложения UWP в Visual Studio
- Управление развертыванием MSIX
Связанные темы
Windows developer