IExpress.exe 创建的自解压和运行 msi/msp 的命令行参数

Posted

技术标签:

【中文标题】IExpress.exe 创建的自解压和运行 msi/msp 的命令行参数【英文标题】:Command line arguments to self-extracting-and-run msi/msp created by IExpress.exe 【发布时间】:2014-05-14 17:10:34 【问题描述】:

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

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

msiexec /qb /update

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

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

【问题讨论】:

我这几天一直在寻找解决方案,然后决定编写自己的自提取器。 @MarianTheisen 看起来这就是它的发展方向。本来希望避免在哪里提取和安装后删除编码问题。 【参考方案1】:

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

msiexec /qb /p foo.msp

【讨论】:

【参考方案2】:

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

见:

Applying Patches

在静默模式下应用补丁

您可以通过两种方式在静默模式下应用补丁:启动 带有 /qn 命令行参数的 MsiExec.exe,或将 /s 传递给 更新.exe。

在应用 静音模式下的补丁。为了正常运行,Windows 安装程序属性 REINSTALL 必须设置为 ALL 并且 REINSTALLMODE 设置为 omus 每当您应用补丁时。由于 Update.exe 总是设置这些 命令行中的属性,您不必做任何额外的事情 如果您的补丁包与 Update.exe 一起应用。

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

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

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

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

【讨论】:

以上是关于IExpress.exe 创建的自解压和运行 msi/msp 的命令行参数的主要内容,如果未能解决你的问题,请参考以下文章

在windows的临时文件夹中隐藏exe的执行[关闭]

批处理 winrar 自解压 运行

如何从 sed 文件启动多个应用程序

winrar自解压后自动运行bat批处理没有处理效果

ms 访问中的自定义 DateDiff 函数不起作用

如何用SAS读取压缩包内的文件或是自动解压文件