Назад | Перейти на главную страницу

Как собрать пакет MSIX из командной строки

Моя конечная цель - иметь возможность запускать сценарий установки Powershell на виртуальной машине и фиксировать все изменения, которые он вносит в пакет MSIX. Я могу сделать это вручную без проблем с помощью мастера MSIX Packaging Tool, но мне нужно упаковать множество приложений, и некоторые из них часто обновляются, поэтому я хотел бы, чтобы что-то работало автоматически.

Я пробовал использовать скрипт пакетного преобразования со следующими настройками в entry.ps1:

$virtualMachines = @(
    @{ Name = "MSIX Packaging Tool Environment"; Credential = $credential }
)

$remoteMachines = @(
)

$conversionsParameters = @(
    @{
        InstallerPath = "Cricut Design Space.msi";
        PackageName = "CricutDesignSpace";
        PackageDisplayName = "Cricut Design Space";
        PublisherName = "CN=Cricut";
        PublisherDisplayName = "Cricut";
    }
)

Это просто говорит мне, что все задания завершены, и не создает файлов MSIX.

Я также пробовал вручную создать этот шаблон:

<MsixPackagingToolTemplate
  xmlns="http://schemas.microsoft.com/appx/msixpackagingtool/template/2018"
  xmlns:mptv2="http://schemas.microsoft.com/msix/msixpackagingtool/template/1904">
<Installer
  Path="L:\Work\scratch\batch-msix-builder\Cricut Design Space.msi"
  Arguments="" />
<VirtualMachine Name="MSIX Packaging Tool Environment" Username="user" />
<SaveLocation PackagePath="L:\Work\scratch\batch-msix-builder" />
<PackageInformation
  PackageName="CricutDesignSpace"
  PackageDisplayName="CricutDesignSpace"
  PublisherName="CN=Cricut"
  PublisherDisplayName="Cricut"
  Version="5.9.8.0" />
</PackageInformation>
</MsixPackagingToolTemplate>

и запустить его с

MsixPackagingTool.exe create-package --template "L:\Work\scratch\batch-msix-builder\template.xml" --virtualMachinePassword "REDACTED"

В результате окно консоли открывается на долю секунды и сразу закрывается. Я даже пробовал это при новой установке Windows, чтобы узнать, было ли что-то с моим компьютером.

Я работал над этим больше дня, и, конечно же, как только я опубликовал в Интернете, я обнаружил, что пошло не так.

Основная проблема заключалась в том, что MsixPackagingTool.exe, похоже, не работает, когда я позволяю ему запрашивать повышение прав, а не явно запускать его из административного окна PowerShell. Вдобавок у меня был искаженный XML. Как только я начал работать из командной строки с повышенными привилегиями, я смог увидеть сообщения об ошибках, выводимые MsixPackagingTool.exe.