可选择根据命令行参数安装组件?

时间:2013-12-04 14:07:21

标签: wix windows-installer command-line-arguments

是否可以根据命令行设置创建一个带有WiX的msi软件包,它可以选择安装组件?

例如。我的msi 总是包含组件:

  • program.exe
  • componentA.dll
  • componentB.dll

如果没有任何参数执行msi(例如用户双击msi),那么我们只安装program.exe和componentA.dll

但是如果调用msi传递命令行参数(例如installer.msi / special),那么还会安装componentB.dll

1 个答案:

答案 0 :(得分:2)

听起来你应该相应地将你的组件放入features。例如,根据您提到的示例,program.exeComponentA.dll可能是FeatureAComponentB.dllFeatureB

然后,您可以通过传递适当的INSTALLLEVEL属性值来控制要安装的功能。

第一篇文章中的备注部分非常好地概述了如何处理这个问题:

  

安装级别:

     

对于任何安装,都有一个已定义的安装级别,   这是1到32,767之间的整数值。初始值是   由INSTALLLEVEL属性确定,该属性在属性中设置   表。

     

仅在功能级别值较小时才安装功能   大于或等于当前安装级别。用户界面可以这样创作   初始化安装时,安装程​​序允许   用户修改功能表中任何功能的安装级别。   例如,作者可以定义表示的安装级别值   特定安装选项,例如Custom,Typical或Minimum,   然后创建一个使用SetInstallLevel ControlEvents的对话框   使用户能够选择其中一种状态。

     

取决于   用户选择的状态,该对话框设置安装级别属性   到相应的值。如果作者指定了典型的等级   100,用户选择“典型”,只选择具有等级的功能   安装100或更少。此外,自定义选项可能会导致   到另一个包含SelectionTree控件的对话框。该   然后,SelectionTree Control允许用户单独更改   是否安装了每个功能。