2012-07-27 8 views
5

Ich arbeite an einem MSBUILD-Skript, um eine Reihe von Parametern zu einem WIX-Projekt für mehrere Builds dynamisch zu injizieren, und ich verstehe I kann -d in candle verwenden um zusätzliche params zu liefern.Wie übergeben Sie den Parameter an Candle in der Befehlszeile und lassen Sie es den Wert im Ziel überschreiben.

Ich bekomme jedoch mehrere Warnungen ähnlich wie "Die Variable 'xxx' mit dem Wert 'yyy' wurde zuvor mit dem Wert 'zzz'" deklariert. Dies ist verständlich, da ich in .wxs diese Werte bereits definiert habe Standardbuild wird der Build dann die Werte von .wxs nach den Warnungen weiter verwenden.

So is..is die Frage es possbile Kerze zu zwingen, um diese Parameter zu überschreiben, die bereits in .wxs sind ..

Vielen Dank im Voraus.

+0

Was passiert, wenn Sie diese Variablen in der '* .wxs' Datei nicht zugewiesen lassen und überprüfen Sie mit' 'ob es einen Wert von der Kommandozeile bekommt? Ist dies nicht der Fall, weisen Sie ihm einen Standardwert zu. Einen Versuch wert, glaube ich –

+0

Danke Yan..das ist ein sehr guter Punkt. – Godsent

Antwort

3

Preprocessor Variablen kann nur einmal definiert werden, so dass Sie so etwas wie benötigen:

<?ifndef Variable ?> 
    <?define Variable="default" ?> 
<?endif?> 

gegen Neudefinition zu schützen. Dies entspricht dem C/C++ - Präprozessor, nach dem das WiX-Toolset modelliert wurde.

Verwandte Themen