-1

我有一个 msp 文件(更新)。它需要使用 /qb 选项执行(因为它安装了一些服务)。我认为 IExpress.exe 将创建此 msp 的自解压和运行 exe,并且我将能够传递 /qb 参数以进行运行。

我尝试将步骤“安装程序以启动”中的参数设置为

msiexec /qb /update

但这给出了一个错误“错误参数”。

有没有办法使用 IExpress.exe 在“msp-run”时传递参数?

4

2 回答 2

0

您需要实际传递 MSP 文件的名称,例如:

msiexec /qb /p foo.msp
于 2015-09-12T18:30:27.283 回答
0

/qb(基本 ui)和 /qn(无 ui)是 MSI 的静默安装(意味着不处理 UI 序列)。静默安装有一些特殊注意事项。

看:

应用补丁

在静默模式下应用补丁

有两种方法可以在静默模式下应用补丁:使用 /qn 命令行参数启动 MsiExec.exe,或者将 /s 传递给 Update.exe。

在静默模式下应用补丁时,需要牢记一个重要的考虑因素。为了正确运行,每当您应用补丁程序时,必须将 Windows Installer 属性 REINSTALL 设置为 ALL,并将 REINSTALLMODE 设置为 omus。由于 Update.exe 始终在命令行中设置这些属性,因此如果您的补丁包与 Update.exe 一起应用,您无需执行任何额外操作。

当使用完整的用户界面应用补丁包时,会显示安装的默认对话框之一,即 PatchWelcome。它包括使用正确选项设置 REINSTALL 和 REINSTALLMODE 的控制事件。但是,由于禁用最终用户界面时不会显示此对话框,因此您必须在命令行中设置属性,如下所示:

msiexec /p '.msp 文件的路径' /qn REINSTALL=ALL REINSTALLMODE=omus

因为补丁不会修改现有的缓存 .msi 数据库,所以不需要包含 REINSTALLMODE 的 v 设置。

FWIW,而不是使用 IExpress 或编写自己的提取器,您可以查看 Windows Installer XML 的 Burn 引导程序引擎。它有一个MspPackage 元素,允许您将所有这些抽象出来并让 Burn 为您处理。

于 2015-09-12T19:37:47.173 回答