WiX ComponentGroup条件

时间:2016-08-29 16:04:11

标签: wix windows-installer installer conditional-statements wix3.10

我有Feature,引用ComponentGroupComponentGroup在另一个文件的Fragment中定义,并包含Component个数。

该项目在产品的多个版本之间共享,我想维护一个版本的Product.wxs文件(代码库在产品版本之间很常见)。

我可以在ComponentGroup上设置Condition以确定是否将其包含在安装程序中吗?

1 个答案:

答案 0 :(得分:2)

是的,你可以。下面的代码片段是完全有效的WiX代码:

<Feature Id="MyFeature" Title="Some title" Level="100">
  <ComponentGroupRef Id="ComponentGroup1"/>
  <ComponentGroupRef Id="ComponentGroup2"/>
  <?if $(var.IncludeAnotherGroup) = true ?>
    <ComponentGroupRef Id="AnotherGroup"/>
  <?endif ?>
</Feature>

您可以在构建时提供IncludeAnotherGroup变量的值,例如像这样(NAnt代码):

<candle ...>
  <defines>
    <define name="IncludeAnotherGroup" value="true" />
  </defines>
  <sources basedir="${paths.wxs}">
    <include name="**.wxs"/>
  </sources>
</candle>