2016-08-29 1 views
0

Ich habe eine Feature, die eine ComponentGroup verweist. Diese ComponentGroup ist in einerin einer anderen Datei definiert und enthält die Nummer Component s.WiX ComponentGroup Bedingung

Dieses Projekt wird für mehrere Versionen des Produkts freigegeben, und ich möchte eine Version der Datei Product.wxs verwalten (die Codebasis ist zwischen den Produktversionen üblich).

Kann ich eine Bedingung für eine ComponentGroup festlegen, um festzustellen, ob sie in das Installationsprogramm aufgenommen werden soll?

Antwort

2

Ja, Sie können. Das Code-Snippet unten ist perfekt gültig WiX Code:

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

Sie den Wert IncludeAnotherGroup Variable bei der Erstellung liefern können, beispielsweise so (NAnt Code):

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

Das ist genau das, was ich brauchte. Ich rufe den Build von der Befehlszeile mit der Visual Studio-Lösung. Ich ändere den Wert der Versionszeichenkette in meiner config.wxi vor dem Errichten des Installers (vor dem Errichten der gesamten Codebasis, um genau zu sein). Können Wix-Variablen von der Msbuild-Befehlszeile aus gesetzt werden? – Jon

+0

@Jon, Es gibt eine Reihe von offiziellen Dokumenten über die Verwendung von MSBuild mit WiX: http://wixtoolset.org/documentation/manual/v3/msbuild/ –

Verwandte Themen