2011-02-10 155 views
1

我們正在從SVN/CruiseControl .NET轉向TFS 2010,並且試圖讓我的腦海中圍繞如何爲以下方案設置自動構建。組織多解決方案構建

假設包含幾個解決方案的大的代碼庫,這反過來參考大量的項目:

enter image description here

因此,在本實施例中的解決方案1次的引用項目A,項目B,項目C和項目D.解決方案2參考項目C和項目E.

當使用TFS作爲構建系統時,在TFS 2010中組織此類設置的最佳方式是什麼?具體而言,我們希望在只修改Project E時避免TFS構建解決方案1,但相反我們希望在修改Project C時構建解決方案1和解決方案2。

任何人都可以建議的好文檔或想法?

回答

2

這在TFS中非常容易。這將幾乎爲你自動完成。

當您創建構建時,您可以指示「工作區」是什麼。這是TFS中包含構建代碼的文件夾。生成觸發器僅在將文件簽入「工作空間」部分中列出的文件夾時纔會觸發。

Workspace

所以,你會做兩個版本:

  • 一個用於解決方法1,有一個工作區設置與包含項目A,B,C和D.
  • 第二內建的文件夾將用於Solution2。它的工作空間將具有項目C和E的文件夾。

如果您將這些項目設置爲通過「持續集成」選項進行觸發,那麼您將獲得正在尋找的內容。 (解決方案1 ​​& 2將在項目C更改時生成,只有當E更改時Solution2將生成,當項目A,B或D更改時生成Solution1)。

+0

非常棒 - 這正是我想聽到的! – 2011-03-01 13:52:50

-1

重新考慮使用Teambuild/TFS。不是你想聽到的我知道的...... 你可以用svn支持這個更容易,並檢查共享的內置dll。

如果構建使用相同的工作空間,您可以設置第二個構建而不重建? 這樣它會更快地編譯,並確保源觸發器排除相關項目。

我可以看到爲什麼你不用什麼使用巡航控制.net了,但你可以使用更好的teamcity。 祝你好運

+0

這是一個非常誤導性的答案。做他想做的事情在TFS中非常容易(微不足道)。它是在TFS中創建atuobuild的一部分自動完成的。 (你是否真的使用過TFS Build?) – Vaccano 2011-02-27 00:04:47