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 的命令行参数的主要内容,如果未能解决你的问题,请参考以下文章