2009-07-20 45 views
1

在另一個構建中包含一個構建的輸出作爲二進制的正確方法是什麼?一個構建包含在另一箇中的輸出

可以說我有一個名爲CompanyName.Domain(我的領域層)的解決方案。我建立了它作爲一個構建,它每晚建立。

現在我想添加一個名爲SomeProject.Web的解決方案。我想用我的解決方案將來自CompanyName.Domin的二進制文件包含到同級別的二進制文件夾中。然後項目SomeProjects.Web參考Binaries \ CompanyName.Domain.dll將工作。

這樣做的最佳做法是什麼?我知道有人說他們試圖用分支來做到這一點。我是一個完全的「源代碼控制」newb。但是,這聽起來不對。

回答

2

就像達里爾,我們使用我們從引用二進制文件「二進制」文件夾中。我們的「庫」只是將結果拷貝到二進制文件的位置,所以如果我們想更新庫,我們只需檢查二進制文件,編譯並再次檢查它們。

這使我們能夠從一個標準化的位置共享我們所有的內部庫(以及我們使用的任何第三方庫),並且我們所有的庫都可以預先構建,從而使我們的開發人員不必構建它們改變庫中的任何東西。

請注意只引用你的庫的發佈版本(我們唯一的例外是我們有一個調試助手庫,它只是有條件地編譯成調試版本,我們必須引用它的調試版本我們的所有調試編譯出來的方案,即使在調試版本)最後

一個注意:避免分支,除非沒有合理的替代。

0

我公司通過創建一個「參考」的文件夾來保存所有必要建立外部引用的程序集的.dll文件,如bin文件夾犯規實際上得到源代碼控制下保存的做到這一點。

+0

這就是我的意思......只是一個不同的名字。文件夾二進制文件與相關解決方案位於同一根級別。它不是bin文件夾。但是,如何將該.dll自動添加到(並重新添加)到References文件夾? – BuddyJoe 2009-07-20 13:30:52

+0

就像Jason上面。他幾乎擊中了頭部。 – Daryl 2009-07-21 18:20:59

0

我的過程與其他海報類似。

說我有兩個項目,叫他們CoreProject和AppProject。 CoreProject是共享的。 AppProject有一個名爲SharedBinaries的文件夾。這是所有組裝參考指向的地方。

我對CoreProject TFSBuild腳本配置爲執行以下操作:

- 獲得最新

-build跌落到放置區(類似於\\ SERVER \懸浮窗\ CoreProjectBuildNameAndNumber)

-drop被複制到放置區中的文件夾(類似於\\ SERVER \ DropZone \ Latest \ CoreProject)

AppProject的TFSBuild腳本被配置爲執行以下操作:

- 獲得最新

- 檢查出在SharedBinaries文件夾中的文件從\\ SERVER \懸浮窗\最新\ CoreProject

- 複製文件

-build

-drop下降區(類似\\ SERVER \ DropZone \ AppProjectBuildNameAndNumber)

- 如果構建成功,構建將被複制到文件夾放置區(類似於\\ SERVER \ DropZone \ Latest \ AppP並且在SharedBinaries中的文件被檢查

- 如果構建失敗,則複製到SharedBinaries的文件將取消簽出。

我發現這個方法非常好。 AppProject始終使用CoreProject中的最新版本構建,所以我們馬上就知道是否存在突變。通過將SharedBinaries簽入TFS,我可以獲得特定的版本,並使用當時使用的CoreProject中相同的dll運行代碼。此外,我只需要獲得最新的信息,並且我的本地計算機也在使用最新版本進行構建。

相關問題