Объединение пакетов MSIX

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

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

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

Настройка

Для успешного создания набора пакетов 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 — добавить все нужные пакеты в одну папку. Каталог должен быть свободен от всего остального, кроме пакетов, которые необходимо упаковать.

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

Bundle packages in a directory

Примечание.

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

В 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 находится в том же каталоге в пакете SDK для Windows 10, что и MakeAppx.exe.

В 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 см. в этой статье.

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