2010-03-19 26 views
5

我有一個惡性腳本象下面這樣:如何將NAnt中的'if'條件轉換爲MSBuild?

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

我想要的是將其轉換成的MSBuild腳本。 我發現有標籤來寫條件,但它只用於定義屬性/項目。

我們可以在MSBuild中寫'if'條件嗎? 請幫忙!

回答

5

每個MSBuild任務有一個可選的條件參數,以便你可以這樣做:

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

編輯:如果你需要一個條件,執行多個任務,你可以重複的條件參數的foreach任務,或者你可以封裝所述多個任務中的呼叫目標

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

字符<和>必須轉義

+0

謝謝madgnome! 但如果我們需要一個條件來執行多個任務: $ {b}」> ... 希望聽到您的意見。 – 2010-03-22 04:38:25

+0

或使用選擇/當(http://msdn.microsoft.com/en-us/library/ms164307.aspx) – yoyo 2013-12-05 21:46:08

+0

或不 - 選擇/當似乎適當,但不幸的是,選擇結構不能用於目標。 :-P – yoyo 2013-12-05 22:31:18