2011-11-02 30 views
0

在團隊構建2010(tfs)中有沒有將構建工作區下的項目與觸發構建的項目分離?在tfs中觸發構建的篩選器項目

我想能夠在我的工作區中指定項目的一個子集作爲更改時觸發構建的項目。目前工作區的活動路徑中的任何更改都會觸發構建。

+2

爲什麼這些項目在構建的工作區中,如果對它們的更改不應觸發構建? –

+0

他們在那裏,因爲有構建所需的輸出,我只是想不讓他們觸發構建的靈活性。具有這種靈活性可以防止更改Local.Testsettings或解決方案文件觸發使用該解決方案或測試設置的每個* build配置。 –

+0

您有多個使用相同解決方案的構建配置?如果你改變了解決方案的一部分,你不想構建?在作爲構建的一部分運行的單元測試中使用了Local.testsettings嗎? –

回答

0

唯一的方法是從構建定義的工作區映射中刪除這些項目。當然,這些項目仍然在您的分支和工作區中。

+0

但刪除它們意味着我不能在構建權利中使用它們? –

+0

如果你不想構建它們,你在使用這些東西?如果檢入對不需要構建的文件的更改,可以對CI構建定義使用'*** NO_CI ***'註釋或繞過門控簽入來檢查構建定義中的門控檢查。 –

1

您可以創建更多構建定義以僅構建特定項目。我有兩套項目,框架和模塊項目。我有兩個CI構建定義,一個用於框架集,另一個用於模塊。如果我更改了框架項目,則會觸發框架構建,並將所有輸出程序集簽入TFS到BuildAssemblies文件夾中。此文件夾包含在模塊構建定義工作區中,因爲BuildAssemblies是從模塊項目引用的。通常情況下,如果我更改BuildAssemblies內容模塊構建應該被觸發,但我檢查了我的更改與*** NO_CI ***前綴不觸發模塊構建。

但這不是很好的設計。如果您更改了框架裝配並通過此更改構建了中斷模塊,則在您手動觸發模塊構建之前,您不會了解它。爲模塊構建使用門控簽入功能是沒有意義的。

1

總的來說,我傾向於同意約翰桑德斯,仍然:
你可以讓你不希望觸發你的構建項目在你的源代碼控制的獨立位置。將它們從主解決方案中刪除,因爲項目&將它們添加爲組件。

這樣,你的第二個來源的任何變化都不會觸發你的主構建 - 合併編譯後的程序集。獲益是後者可以在任何時候選擇完成。

在你的情況下使用文件引用有幾個缺點,主要是你不能直接調試編譯的程序集。另見here

相關問題