Упаковка изолированного приложения Win32 с помощью MSIX
Упаковка существующего приложения MSIX или Win32 в приложение изоляции приложений Win32 будет выполнена с помощью средства упаковки MSIX (MPT). Обратите внимание, что версия MPT, поддерживающая изоляцию приложений Win32, доступна в ресурсах выпуска этого проекта версии 1.2023.517.0. Версия MPT магазина устарела в целях функции изоляции приложений Win32. Дополнительные сведения о MPT см. здесь.
Вы можете найти скачивание для MPT, а также профилировщика в разделе выпусков репозитория GitHub изоляции приложений Win32.
Внимание
Эта функция доступна в предварительной версии: некоторые сведения относятся к предварительному продукту, который может быть существенно изменен до его коммерческого выпуска. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Преобразование существующего установщика Win32 в приложение MSIX
Выберите "Пакет приложения" в левом углу и выберите место создания пакета. Этот поток будет следовать параметру "Создать пакет на этом компьютере".
Примечание.
Это приведет к установке приложения в качестве обычного приложения Win32 после завершения шага 5.
Дождитесь завершения проверки поля "Драйвер средства упаковки MSIX".
Нажмите кнопку обзора, чтобы перейти к установщику Win32 и выбрать его. Оставьте параметр подписи пустым, так как нам потребуется изменить манифест и подписать его еще раз.
Введите сведения о пакете.
Переход к установщику Win32 в обычном режиме
Если есть дополнительные точки входа, кроме основного, запустите или перейдите к ним. Если у приложения есть параметры сопоставления типов файлов в параметрах или настройках, переключите их на этом шаге, чтобы MSIX взял их.
Повторите тот же процесс, если в пакете есть службы.
При нажатии кнопки "Создать" пакет сохраняется в виде пакета полного доверия. Нажмите кнопку "Редактор пакетов", чтобы перейти к потоку "Редактор пакетов" из главного меню. Это может занять до нескольких минут в зависимости от размера пакета.
Преобразование существующего приложения MSIX для изолированного запуска
Выберите правый параметр "Редактор пакетов" и перейдите к MSIX-файлу и нажмите кнопку "Открыть пакет".
Прокрутите вниз до раздела "Файл манифеста" и нажмите кнопку "Открыть файл".
В манифесте необходимо будет вносить следующие изменения.
Примечание.
Изолированные приложения Win32 несовместимы с другими типами приложений в одном пакете.
- Добавьте
xmlns:previewsecurity2="http://schemas.microsoft.com/appx/manifest/preview/windows10/security/2"
в<Package>
элемент, если он еще не существует.-
previewsecurity2
ДобавьтеIgnorableNamespaces
в конец<Package>
элемента.
-
- Добавьте
xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"
в<Package>
элемент, если он еще не существует.-
uap10
ДобавьтеIgnorableNamespaces
в конец<Package>
элемента.
-
-
<Dependencies>
ИзменитсяTargetDeviceFamily
на<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.25357.0" MaxVersionTested="10.0.25357.0" />
.Примечание.
Не все функции доступны в минимальной сборке, ознакомьтесь с заметками о выпуске для получения более подробных сведений.
- Замените
<Application>
любую существующую точку входа,trustlevel/runtimebehavioruap10:TrustLevel="appContainer" previewsecurity2:RuntimeBehavior="appSilo"
. - В
<Application>
расширениях удалите всеEntryPoints=*
илиExecutable=*
как они наследуются от родительского элемента.<Application>
- Добавьте
desktop7:Scope="user"
в элемент расширения дляwindows.protocol
.
Примечание.
По умолчанию MPT автоматически добавляется
<rescap:Capability name="runFullTrust">
<Capabilities>
из-за того, что приложение упаковываетСя Win32. Это следует удалить, если приложение не имеет других манифестированных расширений, которые могут повлиять на глобальное состояние пользователя, напримерcomServer
илиFirewallRules
, так как они требуютrunFullTrust
возможности.- Добавьте
Приложению может потребоваться дополнительная возможность правильно работать сейчас, когда она была изолирована.
Эти возможности непосредственно добавляют функциональные возможности в изолированные приложения.
-
isolatedWin32-print
— печать документов -
isolatedWin32-sysTrayIcon
— Отображение уведомлений из Systray -
isolatedWin32-shellExtensionContextMenu
— Отображение записей контекстного меню на основе COM -
isolatedWin32-promptForAccess
— запрос пользователей на доступ к файлам -
isolatedWin32-accessToPublisherDirectory
— доступ к каталогам, заканчивающимся идентификатором издателя
Эти возможности позволяют получить минимальный доступ к библиотекам, таким как среда выполнения MSVC или другие библиотеки DLL сторон windows/3-й стороны для приложений, которые не поддерживают запросы.
isolatedWin32-dotNetBreadcrumbStore
isolatedWin32-profilesRootMinimal
isolatedWin32-userProfileMinimal
isolatedWin32-volumeRootMinimal
-
Сохраните и закройте окно манифеста. Если в манифесте есть какие-либо ошибки, MPT отобразит их. Нажмите кнопку "Создать или сохранить", чтобы создать MSIX-файл. Это может занять несколько минут в зависимости от размера пакета.
- Если в манифесте возникают ошибки, в Просмотр событий можно найти более допустимое сообщение об ошибке.
Application and Services/Microsoft/Windows/AppxPackagingOM/Microsoft-Windows-AppxPackaging/Operational
- Если в манифесте возникают ошибки, в Просмотр событий можно найти более допустимое сообщение об ошибке.
См . профилировщик возможностей приложения, чтобы узнать о возможностях, которые могут быть объявлены в манифесте пакета приложения.
См. также
Обзор изоляции приложений Win32
Профилировщик возможностей приложений
Упаковка приложения изоляции приложений Win32 с помощью Visual Studio