2014-09-29 93 views
2

我正在嘗試修改TFS 2010的構建過程文件。我有一個隊列構建時設置的標誌,並且當設置所述標誌時,我想要創建一個標籤,並將所有源文件添加到編譯成該標籤的項目。如何使用TFS構建過程:LabelSources?

對於設置了標誌的順序構建,我希望將所述標籤中較舊的源文件替換爲正在編譯的變更集中的新內容。

我一直在試圖用LabelSources來做到這一點,但沒有運氣,並且在LabelSources或LabelWorkspace上有很差的文檔(有什麼區別?)。

這是我目前有:

<mtbwa:LabelSources Child="[LabelChildOption.Replace]" Comment="Published to Container" DisplayName="Create Container Label" sap2010:WorkflowViewState.IdRef="LabelSources_1" Items="[{&quot;$/Foo/LabelTest/Sandbox/&quot;}]" Name="[String.Format(&quot;{0}-{1}&quot;, LabelName, Version_Container)]" Recursion="[RecursionType.Full]" Scope="$/Foo" mva:VisualBasic.Settings="Assembly references and imported namespaces serialized as XML namespaces" Version="T" />

這肯定打的動作,但沒有標籤可以在事後被發現。

任何幫助將不勝感激。和任何有形文檔,除了類文檔與稀疏定義也將不勝感激

編輯1:試圖清除我的目標。

+1

我可以澄清,當你說「我想創建一個標籤,並將編譯項目中的所有文件添加到該標籤」 - 這意味着源文件即未編譯?所以如果設置了標誌,那麼你想要一個標誌並將標誌文件添加到標籤中,那麼如果該標誌被再次設置,那麼你想用新版本更新該標籤中包含的源文件?那是對的嗎? – 2014-10-02 13:34:47

+0

這是正確的。 – WillFM 2014-10-02 20:02:58

+0

標籤是源文件上的有效標籤。您不要將源文件添加到標籤,而是將標籤應用於源文件的版本。這也意味着,如果您更新源文件,標籤仍然會指向舊版本,除非您刪除該標籤,然後將其重新應用於較新的版本。 – 2014-10-09 02:16:28

回答

0

你要做的是建立在現有的模板中。流程定義中應該有一個選項,指向將被設置爲True的Clean Sources。

此選項控制枯萎的構建源被清理,刪除並重新開始。或者如果差分完成。

如果你有很多的源代碼,你可以將clean source設置爲false,並節省大量時間獲取代碼。

您還可以通過在構建框上放置一個TFS代理來加快構建速度,該構建框將緩存這些文件並使構建更快速。

+0

我很抱歉,但你的回答完全沒有提到這一點,正如標題所說,我擔心的是標籤,我編輯了一句話,我相信你誤將這一句話帶入了眼前的問題。 – WillFM 2014-10-01 13:08:48

0

根據我的經驗,大多數內置活動的記錄不完善 - 他們唯一經過充分測試的用例是他們在TFS內置模板(DefaultTemplate.11.0.xaml等)中的使用。恐怕你將不得不編寫一些自定義代碼,以自定義活動,PowerShell腳本或其他方式的形式來實現其他目標。

這就是說,我並不真正瞭解您要設置的過程。你是否想將標籤設置爲最新成功構建的源代碼?爲什麼不使用由構建本身自動創建的那個?

+0

我們有一個異常的部署結構。我們在簽入之後持續集成構建,我們的構建腳本中有一個標記,可以設置(用於手動構建)在構建到不同位置後發佈。目標是在設置標誌時創建標識代碼庫的標籤以及發佈構建的目標。 – WillFM 2014-10-02 20:00:33