2010-03-19 3 views
5

Ich habe ein NAnt Skript wie folgt:Wie konvertiert man 'if' Bedingung in NAnt in MSBuild?

<if test="${a}>${b}">  
    <call target="target"/> 
</if> 

Was ich will, ist es in MSBuild-Skript zu konvertieren. Ich habe festgestellt, dass es ein Tag gibt, um Bedingungen zu schreiben, aber es wird nur für die Definition der Eigenschaft/des Elements verwendet.

Können wir 'if' Bedingung in MSBuild schreiben? Bitte helfen!

Antwort

5

Jede msbuild Aufgabe haben, eine optionale Bedingung Parameter so können Sie dies tun:

<CallTarget Targets="target" Condition="${a} &gt; ${b}"/> 

Edit: Wenn Sie eine Bedingung müssen mehrere Aufgaben auszuführen, können Sie den Zustand Parameter foreach Aufgabe wiederholen oder Sie könnten kapseln die mehrere Aufgaben Aufruf in einem Ziel

<Target Name="MultipleCall" Condition="${a} &gt; ${b}"> 
    <CallTarget Targets="targetA"/> 
    <CallTarget Targets="targetB"/> 
</Target> 

(die Zeichen < und> müssen entwertet werden)

+0

Danke madgnome! Aber was, wenn wir eine Bedingung benötigen, um mehrere Tasks auszuführen: ... Ich hoffe, von Ihnen zu hören. –

+0

Oder verwenden Sie Wählen/Wenn (http://msdn.microsoft.com/en-us/library/ms164307.aspx) – yoyo

+0

Oder nicht - Wählen Sie/Wann scheint, aber das Choose-Konstrukt kann leider nicht in einem verwendet werden Ziel. :-p – yoyo