2015-04-30 29 views
1

我正在將本土構建系統遷移到TFS構建版,並且獲取源代碼有一些獨特的挑戰。最初代碼保存在VSS中,並允許各層代碼獨立,每一層都有自己的標籤。一個文本文件有五個標籤,表示進行最終構建所需的內容,並且此文件位於「主標籤」下。在編譯時讀取文件,每一層都使用其特定標籤從VSS中檢索,並構建完整的源代碼樹。TFS構建 - 使用不同標籤獲取部分源代碼

我該如何才能在各個標籤下的不同文件夾中獲取源代碼併爲完整構建彙編源代碼?

我查看了默認模板,看看代碼是如何檢索的,但是不清楚我是否可以在檢索代碼時爲每個Source Settings條目使用不同的標籤。

我的另一個想法是從主模板調用子模板,但這真的好像過度殺傷。

在TFS構建中,我看到一般的想法是讓構建將標籤應用於所有源代碼,然後獲取該標籤。我還看到,我可以在默認模板的構建過程部分中指定一個標籤。

+0

這非常讓我想起使用Clearcase中的配置規範。 –

回答

0

Team Build假設一切都將在之下一個標籤。但是該標籤可以包含不同版本的文件夾,因此您可以創建一個包含所有不同版本文件的主標籤,而不是「主文本文件」。 這是一個非常罕見的做法但它應該工作:

tf label MasterLabel $/Project/FolderA /recursive /version:c1 
tf label MasterLabel $/Project/FolderB /recursive /version:c50 
tf label MasterLabel $/Project/FolderC /recursive /version:c100 

只要路徑你申請的標籤,不重疊,它應該工作。

要獲得來源,用途:

tf get /resursive /version:LMasterLabel 

一個更好的辦法來做到這一點,將是或者使用的NuGet包打包應用程序和使用的依賴管理的NuGet服務器或確實創建多個構建定義與一個可選的主定義「抓取」各個構建的所有輸出。這基本上就是實驗室管理模板的功能。