2011-03-03 60 views
0

默認情況下,當運行排隊的構建時,MSBuild會調用CoreLabel任務來標記構建中包含的源文件 - 如何控制此標籤的位置被建造?覆蓋由TFS 2008/2010中的MSBuild創建標籤的位置

基本上,我想在標籤在團隊項目的根目錄下創建(即文件夾「客戶端」下方),但看來該標籤在的根目錄中創建的工作文件夾工作區(即項目1 \開發的\ Sources):

$      <-- Project Collection 
+- Client    <-- Team Project 
    +- Project 1  <-- Project 
    +- Deployments <-- Assets for a deployment 
     +- 1.0.0.0 
     +- 1.1.0.0 
    +- Development <-- Development Branch 
     +- Source  <-- Dev Build Definition working folder mapped here. 
    +- Environment <-- Scripts, etc. for deployments. 
    +- Main   <-- Main Branch 
     +- Source  <-- Release Build Definition working folder mapped here. 

在構建定義,我們在爲因發展或主要「源」文件夾級別指定的工作區中的「工作文件夾」構建類型。

望着構建日誌,它看起來像標籤應在客戶端級別創建:

Task "Label" (TaskId:42) 
    Label TeamFoundationServerUrl="http://TFSServer:8080/tfs/DefaultCollection" 
     BuildUri="vstfs:///Build/Build/4538" 
     Name="Nightly_20110303.5" 
     Scope="$/Client" 
     Recursive=True 
     Comments="Version-1.0.0.0 Requested-xxx Get-T Branch-Development" 
     Version="WCATQCDEV-BLD_35_8" 
     Child="Replace" 
     Files="$/" (TaskId:42) 
    Label [email protected]$/Client (version WCATQCDEV-BLD_35_8) was successfully created. (TaskId:42) 

然而,即使Files設置爲$/標籤仍然在工作文件夾級別創建。根據文檔,Files參數應該指定哪些文件包含在標籤中,但很明顯,它沒有按我們的意願工作。

我已經成功地修改了使用BeforeLabel任務設置LabelComment屬性創建的評論,但是,試圖設置在同一個任務,像$/ClientLabelFiles財產似乎並沒有影響到位置的標籤是在調用Label方法時,在日誌中創建,並且似乎最終會在日誌中損壞爲%26/Client

回答

2

將爲該特定構建類型的工作區選項卡中指定的源代碼管理文件夾創建標籤。

如果您在構建類型中指定「開發」作爲源控制文件夾,那麼將僅爲「開發」文件夾下的文件創建標籤。

標籤不僅通過名稱來標識,而且通過所謂的「範圍」來標識,其中範圍是標籤名稱唯一的實際路徑。

如果您的標籤範圍是「$/project」,那麼標籤名稱在Project中是唯一的;當範圍是「$/Project/Development」時,標籤名稱在開發中是唯一的。

範圍=「$ /客戶端」

以上日誌文件條目並不意味着它是在$ /客戶端文件創建標籤,但它實際上意味着創建的標籤是在$獨一無二/客戶。

該範圍還允許用戶在同一個項目中創建具有相同名稱的多個標籤。例如:可以爲同一項目中的不同範圍創建兩個名爲「Test」的標籤(「$/project」和「$/Project/Development」)。

+0

感謝您的回覆 - 是的,我意識到'範圍'有效地定義了標籤的範圍 - 我們一直在使用它,很好地在不同的團隊項目中使用相同名稱的多標籤。我希望'文件'將使我能夠控制標籤的創建位置。所以基本上,我們需要創建一個獨立的構建任務,並標記根中的所有內容?因爲如果我從命令行運行tf標籤,我可以使用ItemSpec參數在TFS中的任何位置設置標籤,而不管我配置的任何工作文件夾是什麼? – 2011-03-05 10:55:32

+0

我認爲你正在使用TFS2010。你使用默認構建模板(DefaultTemplate.xaml)還是升級構建模板(UpgradeTemplate.xaml)? – Jehan33 2011-03-05 15:40:30

+0

是的,我們正在使用TFS2010,但我相信我們正在使用2008樣式構建項目 - 我有一個包含許多任務的.proj文件,主要是因爲我們沒有時間在項目開始學習新的基於工作流的做事方式:(因此我可能錯過了這個問題。 – 2011-03-07 15:25:59