2014-09-12 152 views
0

在自定義MSBuild任務中,如果構建發生爲TFS構建服務器上的CI構建的一部分,我想執行其他驗證步驟。發現構建發生的環境的最健壯和便攜的方法是什麼?我不想在構建服務器更改或升級TFS時重新訪問代碼。構建服務器或本地構建自定義構建任務

謝謝, 詹姆斯

回答

2

將要執行的任務的條件。設置condition = true作爲TFS構建的一部分構建,但默認爲未設置,否則設置爲false。

例如,在執行你的任務項目文件:

<PropertyGroup> 
    <DoMyTask Condition="'$(DoMyTask)'==''">false</DoMyTask> 
</PropertyGroup> 

的條件,那麼添加到您的任務:

<TaskName 
    TaskParam="Value" 
    ... 
    Condition="'$(DoTaskName)'=='true'" /> 

然後打開你的生成定義並導航到進程選項卡。在高級下,您可以添加額外的MSBuild參數。添加以下內容(使用上面的示例屬性):/ p:DoMyTask = true

如果您要使用此功能,您還可以在構建過程模板中追加'/ p:DoMyTask = true'一直在許多建築物中。

順便說一句:我確定有很多不同的方法來確定您的構建是否在構建機器上發生或沒有。我強烈建議你不要使用'猜測'來確定構建環境,因爲它會在以後進行困難的診斷。

0

在構建過程模板創建一個變量,並將其設置爲在建立中央服務器。這樣你可以將變量傳遞給你的任務。如果變量設置爲特定值,則它是中央服務器中的內部版本。

有關如何修改生成過程模板,請點擊此鏈接瞭解更多信息: http://msdn.microsoft.com/en-us/library/dd647551.aspx