如何在通过命令行安装msi时停止从参数执行自定义操作。

时间:2014-03-13 06:56:38

标签: wix custom-action msiexec

我使用以下命令在静音模式下成功安装了我的msi。

msiexec /i mysetup.msi /qn ADDLOCAL=myfeature

另外,我在我的installsequence中有一个自定义动作,这是一些配置的gui。我不希望在静音模式下安装时出现gui。有没有办法在安装msi时传递paramater以跳过自定义操作。提前谢谢。

3 个答案:

答案 0 :(得分:4)

将自定义操作放在InstallUISequence中。在静默安装期间会跳过InstallUISequence。

答案 1 :(得分:2)

如果您只想将参数传递给MSI,以便可以使用给定参数以静默方式安装它,则可以在命令行中将它们添加为属性。这些将覆盖MSI中Property-table中最终定义的属性的值 即要将属性MYPROPERTY设置为值MyValue,请将以下内容添加到命令行:

msiexec /i mysetup.msi /qn ADDLOCAL=myfeature MYPROPERTY=MyValue

在自定义操作中,只需引用该属性即可。如果使用GUI安装,则可以在自定义操作提供的GUI中进行设置。

答案 2 :(得分:1)

+1 @Nimish和@taffit的答案。

如果您没有安装程序的来源,或者您无法修改这些来源,您可以尝试不同的方法:

  • 在Orca中打开MSI文件,并将该自定义操作的条件修改为0
  • 生成转换并将其保存在某处,例如如diff.mst
  • 修改命令行,如下所示:

    msiexec /i mysetup.msi TRANSFORMS=diff.mst /qn ADDLOCAL=myfeature