2016-08-29 5 views
0

私はFeatureを持っています。これはComponentGroupです。そのComponentGroupは別のファイルのFragmentで定義され、Componentの数を含んでいます。WiXコンポーネントグループ条件

このプロジェクトは複数のバージョンの製品で共有されており、製品バージョン間で共通のコードベースであるProduct.wxsファイルの1つのバージョンを維持したいと考えています。

コンポーネントグループに条件を設定して、インストーラに含めるかどうかを決定できますか?

答えて

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> 
+0

これは私が必要としていたものです。私はビジュアルスタジオのソリューションを使用してコマンドラインからビルドを呼び出しています。インストーラをビルドする前に、config.wxiのバージョン文字列の値を修正しています(正確には、コードベース全体を構築する前に)。 msbuildコマンドラインから変数を設定できますか? – Jon

+0

@ジョン、MSBuildをWiXで使用する方法に関する公式文書がたくさんあります:http://wixtoolset.org/documentation/manual/v3/msbuild/ –

関連する問題