我已經使用TB 2010爲我們的產品中的多個功能設置了多個構建定義。 我想知道如何使用現有的定義來創建「主構建」。 我將更具體: 在MSBuild中,我可以使用target來調用另一個MSBuild項目。這樣我可以鏈接構建定義以獲得最終的主構建腳本。 如何在結核病2010年做到這一點。 注意:我想使用WF4 ...不是MSBuild!Master Build with Team Build 2010
謝謝
我已經使用TB 2010爲我們的產品中的多個功能設置了多個構建定義。 我想知道如何使用現有的定義來創建「主構建」。 我將更具體: 在MSBuild中,我可以使用target來調用另一個MSBuild項目。這樣我可以鏈接構建定義以獲得最終的主構建腳本。 如何在結核病2010年做到這一點。 注意:我想使用WF4 ...不是MSBuild!Master Build with Team Build 2010
謝謝
您當然可以編寫一個工作流自定義活動,以排隊構建定義的構建。該活動應該是一個代碼活動並接受您想要排隊的構建定義的名稱。
要編寫與您的TFS服務器交互的代碼以排隊構建,您可以使用Microsoft.TeamFoundation.Build.Client程序集的API。另外,Jim Lamb發佈了關於爲構建here創建自定義活動的博客。
在細節,你的代碼應該做以下步驟:
實際上,我驚訝的是,沒有爲2010版本沒有例子,當我試圖尋找「TFS編程排隊|創建一個構建「。我可能會在這裏發表博客。
但有一點需要注意,即從您的自定義活動排隊的構建將由構建服務帳戶排隊,因此您需要確保此帳戶被授予正確的permissions以排隊構建。默認情況下,當它被添加到TFS構建服務帳戶組時,我認爲它沒有。
UPDATE:
埃瓦爾德·霍夫曼剛剛寫了一篇關於TFS系列構建,其中一個討論有關從自定義活動做模擬。它非常適合你的需要:
我還發現,泰勒Lafrine在博客程序於2009年在他的崗位創建構建回:
http://blogs.msdn.com/b/taylaf/archive/2009/12/04/introducing-tfs-impersonation.aspx
希望它能幫助。
非常感謝!我會試試這個 – monkzen 2011-06-12 17:40:30
@Duat Le你知道我可以做什麼,當我排隊很多建立一個又一個,每個依賴另一個?我的問題是,構建異步排隊,但我想等待構建。有任何想法嗎? – Rookian 2012-02-15 09:33:31
你當然可以阻止你的線程隊列的構建和等待,直到構建完成。您需要的是獲取IQueuedBuild對象,並等待狀態屬性變爲「已完成」或「已取消」。請注意,構建請求可能會延期,因此請密切關注,如果構建請求被推遲,您可以選擇等待或取消。 – 2012-02-22 02:11:59