我有一个 msp 文件(更新)。它需要使用 /qb 选项执行(因为它安装了一些服务)。我认为 IExpress.exe 将创建此 msp 的自解压和运行 exe,并且我将能够传递 /qb 参数以进行运行。
我尝试将步骤“安装程序以启动”中的参数设置为
msiexec /qb /update
但这给出了一个错误“错误参数”。
有没有办法使用 IExpress.exe 在“msp-run”时传递参数?
我有一个 msp 文件(更新)。它需要使用 /qb 选项执行(因为它安装了一些服务)。我认为 IExpress.exe 将创建此 msp 的自解压和运行 exe,并且我将能够传递 /qb 参数以进行运行。
我尝试将步骤“安装程序以启动”中的参数设置为
msiexec /qb /update
但这给出了一个错误“错误参数”。
有没有办法使用 IExpress.exe 在“msp-run”时传递参数?
您需要实际传递 MSP 文件的名称,例如:
msiexec /qb /p foo.msp
/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 为您处理。