2011-11-15 25 views
2

我有兩個構建定義,用於具有兩個分支的項目。 發展和生活。如何爲分支設置門控檢入

我已經爲開發分支設置了手動構建,而且運行得很好。 現在我想要設置門控檢查活動分支,只有在開發人員進入活動分支時觸發。這被映射到項目的根目錄不僅僅是一個特定的分支,而且在我將這個項目映射到build之後。

但是我的設置每次都是在開發人員進入開發分支的時候觸發的。

有什麼我做錯了嗎?

我的項目佈局:

$/KCTC/Lib/   (Contains all referenced dlls)  
$/KCTC/Projects/ (contains branches) 
$/KCTC/Projects/Development 
$/KCTC/Projects/Live 

如何過支沒有看到庫引用的文件:

考慮 」 ........ \ LIB \ fluentnhibernate-NH3。 1-1.2 \ Iesi.Collections.dll「,但它不存在 。

設置我的活門構建的: 我也有單元測試NUnit的創造項目,這是失敗,因爲

查詢\ StarMetrics \ 20110613個\ StageTestSuite.cs(2):類型或 命名空間名稱「NUnit的」找不到(是否缺少使用 指令或程序集引用?)

工作區的定義: enter image description here

和我的過程defition

enter image description here

回答

1

確定和解決方案是:

我已經去了,我補充需要門手工檢查每一個項目。在哪裏我可以指定自定義程序集的版本控制路徑。

注意 如果你有多個DLL具有相同的名稱,你會得到TFS錯誤(這不會影響編譯,但它的錯誤)

enter image description here

或者另一種方法是添加dll將項目請求到構建資源中。

enter image description here

3

門控簽入將被觸發在源控制項目的任何企圖的支票,是爲構建定義定義的工作空間映射的任何條目下存在。你的情況,你有

$/KCTC/Projects/ (contains branches) <-- remove this 
$/KCTC/Projects/Development <-- remove this as well 
$/KCTC/Projects/Live <-- this should contain everything you need for the Live branch correct? 

這基本上說,「執行門控簽入此文件夾下包含什麼」 ......剎那間需要刪除指示線,以確保客人不願意火門控簽入的時候檢查開發分支或包含所有分支的父文件夾中的代碼。

至於你缺少的Lib二進制文件,Id打賭相對路徑略有不同。我在生成機器上進行物理檢查以確認。

+0

你的意思,我要的路徑設置爲源控制系統文件夾更深的分支水平,這將確保門檢查在分行層面,而不是項目呢? – cpoDesign

+0

@cpoDesign我將更新我的答案 –

+0

描述你所引用的只是我在tfs中的佈局。而我不會的事情,我會擺脫這一點。 – cpoDesign

1

查看您的工作區定義截圖,通過在構建代理文件夾中包含「\ Moose」,看起來您打破了構建服務器上的相對路徑。

您想要:

$/KCTC/Lib | $(SourceDir)\ Lib
$/KCTC/Projects/Live | $(SourceDir)\ PROJECTS \直播