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


Пакет пакетов MSIX

В этой статье описывается процесс создания пакета после преобразования версий x86 и x64 установщиков Windows с помощью средства упаковки MSIX.

Объединяя несколько версий архитектуры установщика в одну сущность, необходимо передать только пакет в Магазин или другое расположение распространения. Платформа развертывания Windows 10 знает о типе пакета MSIXbundle и будет загружать только файлы, применимые к архитектуре устройства. Помните, что если вы решите распространить msixbundle для определенного приложения, вы не можете вернуться к распространению только пакета MSIX.

В следующем разделе представлен пошаговый подход к созданию .msixbundle. Предполагается, что вы уже преобразовали существующие версии x86 и x64 установщика Windows в пакеты MSIX.

Настройка

Для успешной сборки пакета MSIX потребуется следующая настройка:

  • Пакет SDK для Windows 10 (версия 1809 или более поздней версии)
  • Преобразованные пакеты x64 и x86 MSIX

Шаг 1: Найдите MakeAppx.exe

MakeAppx.exe — это средство, доступное в пакете SDK для Windows 10, которое позволяет упаковывать и собирать пакеты MSIX. Это средство будет использоваться для объединения двух пакетов MSIX.

MakeAppx.exe можно использовать для извлечения содержимого файлов пакета приложения Windows 10. Он также шифрует и расшифровывает пакеты приложений и их сборки.

После установки SDK для Windows 10 MakeAppx.exe обычно находится здесь:

  • [x86] — C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86\MakeAppx.exe
  • [x64] — C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\MakeAppx.exe

Шаг 2. Упаковка пакетов

Самый простой способ упаковать пакеты с MakeApp.exe — добавить все пакеты, которые требуется объединить в одну папку. Каталог должен быть свободен от всего остального, кроме пакетов, которые необходимо упаковать.

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

Собрать пакеты в каталоге

Замечание

MakeAppx.exe объединяет только пакеты с одинаковой идентичностью, то есть идентификаторы AppID, издатели, версии должны быть одинаковыми. Только архитектура процессора пакетов для пакета приложения может отличаться.

MakeAppx.exe имеет следующий синтаксис командной строки.

C:\> "C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86\MakeAppx.exe" bundle /d input_directorypath 
/p <filepath>.msixbundle

Ниже приведен пример команды.

C:\> "C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86\MakeAppx.exe" bundle /d c:\AppPackages\ 
/p c:\MyLOBApp_10.0.0.0_ph32m9x8skttmg.msixbundle

После выполнения команды в указанном пути будет создан неподписанный «.msixbundle». Не нужно подписывать пакеты перед их объединением.

Шаг 3. Подпишите пакет

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

Чтобы подписать пакет, вам потребуется общий сертификат подписи кода и использовать SignTool.exe из пакета SDK для Windows 10.

Настоятельно рекомендуется использовать доверенный сертификат из центра сертификации, так как это позволяет распространять и развертывать пакет на устройствах конечных пользователей. Получив доступ к частному сертификату (PFX-файл), вы можете подписать пакет, как показано ниже.

Замечание

SignTool.exe доступен в том же каталоге, что и MakeAppx.exe в пакете SDK для Windows 10.

SignTool.exe имеет следующий синтаксис командной строки.

C:\> "C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86\SignTool.exe" sign /fd <Hash Algorithm> /a 
/f <Path to Certificate>.pfx /p <Your Password> <File path>.msixbundle

Ниже приведен пример команды.

C:\> "C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86\SignTool.exe" sign /fd SHA256 /a 
/f c:\private-cert.pfx /p aaabbb123 c:\MyLOBApp_10.0.0.0_ph32m9x8skttmg.msixbundle

Дополнительные сведения о подписи пакетов приложений с помощью SignTool.exeсм. в этой статье.

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