【问题标题】:how to stop custom action from executing from parameters while installing msi throug command line.?如何在通过命令行安装 msi 时停止从参数执行自定义操作。?
【发布时间】:2014-03-13 06:56:38
【问题描述】:
我已使用以下命令以静默模式成功安装了我的 msi。
msiexec /i mysetup.msi /qn ADDLOCAL=myfeature
另外,我的 installsequence 中有一个自定义操作,它是一些配置的 gui。而且我不希望在以静默模式安装时出现该 gui。有没有办法在安装 msi 时传递参数以跳过自定义操作。提前致谢。
【问题讨论】:
标签:
wix
custom-action
windows-installer
【解决方案1】:
将您的自定义操作放入 InstallUISequence。在静默安装期间将跳过 InstallUISequence。
【解决方案2】:
如果您只想将参数传递给 MSI,以便可以使用给定参数以静默模式安装它,您可以将它们作为属性添加到命令行中。这些将覆盖 MSI 属性表中最终定义的属性的值。
IE。要将属性 MYPROPERTY 设置为值 MyValue,请将以下内容添加到命令行:
msiexec /i mysetup.msi /qn ADDLOCAL=myfeature MYPROPERTY=MyValue
在您的自定义操作中,只需引用该属性。如果安装了 GUI,您可以在自定义操作提供的 GUI 中进行设置。
【解决方案3】:
@Nimish 和@taffit 的答案+1。
如果您没有安装程序的源代码,或者您无法修改它们,您可以尝试不同的方法:
-
在 Orca 中打开 MSI 文件并将该自定义操作的条件修改为 0
-
生成一个转换并将其保存在某处,例如如diff.mst
-
像这样修改你的命令行:
msiexec /i mysetup.msi TRANSFORMS=diff.mst /qn ADDLOCAL=myfeature