Поделиться через


Упаковка приложения изоляции приложений 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 (или более поздней версии) также требуется.

Снимок экрана: необходимые рабочие нагрузки для установки в Visual Studio

Шаг 2. Создание проекта приложения

В Visual Studio создайте проект C# или C++ с помощью шаблона пустого приложения, упаковав проект упаковки приложений Windows (WinUI 3 в классическом приложении). Нажмите кнопку "Создать ", а затем выберите 10.0.26100.0 (или более поздней) для версии целевой платформы (TPV) и минимальной версии целевой платформы (TPMinV).

Снимок экрана: шаблон для пустого приложения с проектом упаковки Windows в Visual Studio

Снимок экрана: экран

Снимок экрана: новый экран проекта WinUI в Visual Studio

Шаг 3. Установка Microsoft.Windows.SDK.BuildTools версии 10.0.26100.1742 или более поздней версии с NuGet

Перейдите в Проект.> Управление пакетами NuGet для установки Microsoft.Windows.SDK.BuildTools версии 10.0.26100.1 (или более поздней).

Снимок экрана: экран управления пакетами NuGet в Visual Studio

Снимок экрана: пакет Microsoft.Windows.SDK.BuildTools на экране NuGet в Visual Studio

Снимок экрана: сведения о пакете средств сборки на экране NuGet в Visual Studio

Шаг 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 возможности.

Снимок экрана: конфигурация приложения упаковки в Visual Studio

  • Добавьте <AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion> в файл wapproj сразу после строк версий целевой платформы Снимок экрана: конфигурация файла проекта в Visual Studio

Шаг 5. Создание и публикация пакетов приложений

Создайте решение Visual Studio.

Снимок экрана: сборка решения в Visual Studio

Опубликуйте пакет приложения с помощью мастера создания пакетов приложений...

Снимок экрана: мастер создания пакетов приложений в Visual Studio

Снимок экрана: шаг создания в мастере пакетов приложений в Visual Studio

После публикации пакетов приложений в расположении выходных данных отображается корневой каталог, в котором пакет MSIX публикуется по версии. Откройте папку версии, чтобы найти файл Install.ps1 для установки приложения.

Снимок экрана: упаковка была успешно создана мастером в Visual Studio

Обзор изоляции приложений

Профилировщик возможностей приложений

Упаковка изолированного приложения Win32 с помощью MSIX