我的最终目标是能够在虚拟机中运行 Powershell 安装脚本,并将其所做的所有更改捕获到 MSIX 包中。我可以使用 MSIX 打包工具向导手动完成此操作,没有任何问题,但我有很多应用需要打包,其中一些应用经常更新,所以我想让某些操作自动化。
我尝试过使用批量转换脚本在 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 上尝试过这个,看看是不是我的电脑出了问题。
答案1
我已经处理这个问题一天多了,当然,我一上网就发现了问题所在。
主要问题是,当我让 MsixPackagingTool.exe 提示提升权限而不是从管理 PowerShell 窗口明确运行它时,它似乎不起作用。此外,我还遇到了一些格式错误的 XML。一旦我开始从提升权限的命令提示符运行,我就能够真正看到 MsixPackagingTool.exe 输出的错误。
答案2
不是一个答案(无法评论,因为我不是这里的成员),但作为一个评论,这个链接可能会帮助感兴趣的各方,例如在模板创建开始时
如何生成命令行转换的模板文件 - MSIX | Microsoft Docs
(按照@djdomi 的建议,在最后引用的某处。)
对于那些评估与 MSIX 化相关的可能并发症的人来说,使该包成为一项可启动的任务 可能涉及。
使用 MSIX 打包工具,您可以通过两种方式执行转换:通过交互式 UI 或通过我们的命令行选项。使用命令行时,您需要提供模板文件,以便转换符合您的特定设置和需求。本文将帮助指导您完成生成适合您的模板文件的过程。
有两种方法可以获取适合您的模板文件:
- 您可以使用 MSIX 打包工具的 UI。在该工具的设置中,您可以指定要为创建的每个 MSIX 包生成一个转换模板文件。
- 您可以示例模板 并手动输入每次转换所需的配置。
从 MSIX 打包工具生成转换模板文件
- 启动 MSIX 打包工具。