无人参与的安装wix读命令行参数传递给msiexec

时间:2011-11-11 11:15:20

标签: wix windows-installer

我正在使用wix编写安装程序。对于使用msiexec的静默安装,我想从命令行提供一些参数,我想设置为wix属性。

我用于启用/禁用少数功能的这些属性。

任何人都可以告诉我如何阅读传递给msiexec的命令行属性。 使用C ++自定义操作,我们使用MsiGetProperty

进行读取

非常感谢..

最诚挚的问候, 马克

3 个答案:

答案 0 :(得分:7)

要从命令行使该属性可用,您应该使用大写名称来定义它。我经常使用启动条件来检查命令行上传递的属性:

<Property Id="PROPNAME" Admin="yes" />
<Condition Message="Public Property PROPNAME not passed">Installed or PROPNAME</Condition>

Installed变量仅在安装时检查属性值而不是卸载。

msiexec的命令行如下所示:

msiexec -i <msiname.msi> PROPNAME="PROPVALUE"

答案 1 :(得分:6)

您还应该查看ADDLOCAL属性。您可以使用如下命令行简化您的问题:

msiexec /i product.msi ADDLOCAL=FEATURE1,FEATURE2,FEATURE4,FEATURE5

答案 2 :(得分:2)

功能元素可以使用一个或多个条件元素作为子元素。功能条件可以直接以formatted形式使用安装程序属性,例如:

[PROPERTY_NAME] = "value"

每个要素Condition元素必须使用Level属性。在您的情况下,它可以为0,因此在满足条件时不会安装该功能。基本上,您将设置跳过该功能的条件。