Упаковка приложения изоляции приложений Win32 с помощью Visual Studio
На этой странице рассматриваются все необходимые компоненты для упаковки приложения для использования изоляции приложений Win32.
Внимание
Эта функция доступна в предварительной версии: некоторые сведения относятся к предварительному продукту, который может быть существенно изменен до его коммерческого выпуска. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Необходимые условия
Для упаковки приложения в изолированное приложение Win32 необходимо упаковать следующее:
- Visual Studio версии 17.10.2 или более поздней
Шаг 1. Установка необходимых рабочих нагрузок в Visual Studio, включая пакет SDK для Windows 11 10.0.26100.0 (или более поздней версии)
Откройте установщик Visual Studio и измените существующую установку. На вкладке "Рабочие нагрузки" установите флажок разработки приложений Windows (при необходимости установите флажок средств разработки приложений WinUI на C++). Пакет SDK для Windows 11 10.0.26100.0 (или более поздней версии) также требуется.
Шаг 2. Создание проекта приложения
В Visual Studio создайте проект C# или C++ с помощью шаблона пустого приложения, упаковав проект упаковки приложений Windows (WinUI 3 в классическом приложении). Нажмите кнопку "Создать ", а затем выберите 10.0.26100.0 (или более поздней) для версии целевой платформы (TPV) и минимальной версии целевой платформы (TPMinV).
Шаг 3. Установка Microsoft.Windows.SDK.BuildTools версии 10.0.26100.1742 или более поздней версии с NuGet
Перейдите в Проект.> Управление пакетами NuGet для установки Microsoft.Windows.SDK.BuildTools версии 10.0.26100.1 (или более поздней).
Шаг 4. Изменение файлов Packaging.appxmanifest и проектов
В файле манифеста необходимо вносить следующие изменения:
Примечание. Изолированные приложения win32 несовместимы с другими типами приложений в одном пакете.
Добавьте
xmlns:uap18="http://schemas.microsoft.com/appx/manifest/uap/windows10/18"
в<Package>
элемент, если он еще не существует.-
uap18
ДобавьтеIgnorableNamespaces
в конец<Package>
элемента.
-
<Dependencies>
ИзменитсяTargetDeviceFamily
на<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.26100.0" MaxVersionTested="10.0.26226.0" />
.Примечание.
Не все функции доступны в минимальной сборке, ознакомьтесь с заметками о выпуске для получения более подробных сведений. Кроме того, следующие изменения манифеста позволяют приложению стать изолированным приложением, но оно может продолжать работать как приложение Win32 в операционных системах, где изоляция приложений Win32 не поддерживается.
В
<Application>
замените любую существующую точку входа/уровень доверия/поведение во время выполнения наEntryPoint="Windows.FullTrustApplication"
uap18:EntryPoint="Isolated.App"
uap18:TrustLevel="appContainer" uap18:RuntimeBehavior="appSilo"
.В
<Application>
расширениях удалите всеEntryPoints=*
илиExecutable=*
как они наследуются от родительского элемента.<Application>
Добавьте
desktop7:Scope="user"
в элемент расширения дляwindows.protocol
.Примечание.
По умолчанию Visual Studio автоматически добавляется
<rescap:Capability name="runFullTrust">
<Capabilities>
из-за того, что приложение упаковывается Win32. Это следует удалить, если приложение не имеет других манифестированных расширений, которые могут повлиять на глобальное состояние пользователя, напримерcomServer
илиFirewallRules
, так как они требуютrunFullTrust
возможности.
- Добавьте
<AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion>
в файл wapproj сразу после строк версий целевой платформы
Шаг 5. Создание и публикация пакетов приложений
Создайте решение Visual Studio.
Опубликуйте пакет приложения с помощью мастера создания пакетов приложений...
После публикации пакетов приложений в расположении выходных данных отображается корневой каталог, в котором пакет MSIX публикуется по версии. Откройте папку версии, чтобы найти файл Install.ps1 для установки приложения.