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


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

Упаковка существующего приложения MSIX или Win32 в приложение изоляции приложений Win32 будет выполнена с помощью средства упаковки MSIX (MPT). Обратите внимание, что версия MPT, поддерживающая изоляцию приложений Win32, доступна в ресурсах выпуска этого проекта версии 1.2023.517.0. Версия MPT магазина устарела в целях функции изоляции приложений Win32. Дополнительные сведения о MPT см. здесь.

Вы можете найти скачивание для MPT, а также профилировщика в разделе выпусков репозитория GitHub изоляции приложений Win32.

Внимание

Эта функция доступна в предварительной версии: некоторые сведения относятся к предварительному продукту, который может быть существенно изменен до его коммерческого выпуска. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Преобразование существующего установщика Win32 в приложение MSIX

  1. Выберите "Пакет приложения" в левом углу и выберите место создания пакета. Этот поток будет следовать параметру "Создать пакет на этом компьютере".

    Примечание.

    Это приведет к установке приложения в качестве обычного приложения Win32 после завершения шага 5.

    Снимок экрана: главная страница средства упаковки MSIX

  2. Дождитесь завершения проверки поля "Драйвер средства упаковки MSIX".

    Снимок экрана: страница

  3. Нажмите кнопку обзора, чтобы перейти к установщику Win32 и выбрать его. Оставьте параметр подписи пустым, так как нам потребуется изменить манифест и подписать его еще раз.

    Снимок экрана: страница выбора установщика в средстве упаковки MSIX

  4. Введите сведения о пакете.

    Снимок экрана: страница сведений о пакете в средстве упаковки MSIX

  5. Переход к установщику Win32 в обычном режиме

  6. Если есть дополнительные точки входа, кроме основного, запустите или перейдите к ним. Если у приложения есть параметры сопоставления типов файлов в параметрах или настройках, переключите их на этом шаге, чтобы MSIX взял их.

  7. Повторите тот же процесс, если в пакете есть службы.

  8. При нажатии кнопки "Создать" пакет сохраняется в виде пакета полного доверия. Нажмите кнопку "Редактор пакетов", чтобы перейти к потоку "Редактор пакетов" из главного меню. Это может занять до нескольких минут в зависимости от размера пакета.

    Снимок экрана: окончательная страница создания пакета при создании пакета в средстве упаковки MSIX

Преобразование существующего приложения MSIX для изолированного запуска

  1. Выберите правый параметр "Редактор пакетов" и перейдите к MSIX-файлу и нажмите кнопку "Открыть пакет".

    Снимок экрана: главная страница перед нажатием кнопки

  2. Прокрутите вниз до раздела "Файл манифеста" и нажмите кнопку "Открыть файл".

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

    В манифесте необходимо будет вносить следующие изменения.

    Примечание.

    Изолированные приложения 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/runtimebehavior uap10:TrustLevel="appContainer" previewsecurity2:RuntimeBehavior="appSilo".
    • В <Application> расширениях удалите все EntryPoints=* или Executable=* как они наследуются от родительского элемента. <Application>
    • Добавьте desktop7:Scope="user" в элемент расширения для windows.protocol.

    Примечание.

    По умолчанию MPT автоматически добавляется <rescap:Capability name="runFullTrust"><Capabilities> из-за того, что приложение упаковываетСя Win32. Это следует удалить, если приложение не имеет других манифестированных расширений, которые могут повлиять на глобальное состояние пользователя, например comServer или FirewallRules, так как они требуют runFullTrust возможности.

    Снимок экрана: содержимое файла манифеста приложения

  3. Приложению может потребоваться дополнительная возможность правильно работать сейчас, когда она была изолирована.

    Эти возможности непосредственно добавляют функциональные возможности в изолированные приложения.

    • isolatedWin32-print — печать документов
    • isolatedWin32-sysTrayIcon — Отображение уведомлений из Systray
    • isolatedWin32-shellExtensionContextMenu — Отображение записей контекстного меню на основе COM
    • isolatedWin32-promptForAccess — запрос пользователей на доступ к файлам
    • isolatedWin32-accessToPublisherDirectory — доступ к каталогам, заканчивающимся идентификатором издателя

    Эти возможности позволяют получить минимальный доступ к библиотекам, таким как среда выполнения MSVC или другие библиотеки DLL сторон windows/3-й стороны для приложений, которые не поддерживают запросы.

    • isolatedWin32-dotNetBreadcrumbStore
    • isolatedWin32-profilesRootMinimal
    • isolatedWin32-userProfileMinimal
    • isolatedWin32-volumeRootMinimal
  4. Сохраните и закройте окно манифеста. Если в манифесте есть какие-либо ошибки, MPT отобразит их. Нажмите кнопку "Создать или сохранить", чтобы создать MSIX-файл. Это может занять несколько минут в зависимости от размера пакета.

    • Если в манифесте возникают ошибки, в Просмотр событий можно найти более допустимое сообщение об ошибке.Application and Services/Microsoft/Windows/AppxPackagingOM/Microsoft-Windows-AppxPackaging/Operational
  5. См . профилировщик возможностей приложения, чтобы узнать о возможностях, которые могут быть объявлены в манифесте пакета приложения.

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

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

Упаковка приложения изоляции приложений Win32 с помощью Visual Studio