TFS和共享專案在多個解決方案
我們的.NET團隊為我們公司的專案工作,分為不同的類別.一些是內部網路應用程式,一些是外部(公開面對的)Web應用程式,我們還為我們的公司辦公室使用者提供內部Windows應用程式,以及我們零售點(商店)的Windows Forms應用程式.當然,因為我們討厭程式碼重用,所以我們有一大堆程式碼在不同的應用程式之間共享.目前我們使用SVN作為原始碼控制,我們的儲存庫如下所示:
- = folder, | = Visual Studio Solution -SVN - Internet | Ourcompany.com | Oursecondcompany.com - Intranet | UniformOrdering website | MessageCenter website - Shared | ErrorLoggingModule | RegularExpressionGenerator | Anti-Xss | OrgChartModule etc...
所以..
Internet資料夾中的OurCompany.com解決方案將具有一個網站專案,並且還將包括來自共享目錄的ErrorLoggingModule,RegularExpressionGenerator和Anti-Xss專案.
同樣,我們的UniformOrdering網站解決方案也會將這些專案都包含在解決方案中.
我們更喜歡對.dll引用的專案引用,因為首先,如果我們需要在在OurCompany.com網站上工作時新增或修復ErrorLoggingModule中的一個函式,那就在那裡.此外,這允許我們構建每個解決方案,並檢視共享程式碼的更改是否會破壞任何其他應用程式.如果我是正確的,這也應該在構建伺服器上執行良好.
在SVN中,沒有問題. SVN和Visual Studio不是以TFS的原始碼控制方式繫結在一起.在使用TFS時,我們從來沒有想過如何在TFS中使用這種型別的結構,因為在TFS中,TFS專案始終與Visual Studio解決方案相關.原始碼儲存庫是TFS專案的一個小孩,所以如果我們想這樣做,我們必須在每個TFS專案的原始碼儲存庫中複製共享程式碼.正如我的同事所說,這個“打破了所有關於程式碼重用和簡單性的最佳實踐”.對我們而言,我們切換到SVN已經足夠了.
然而,現在我們面臨著真正修復我們開發流程的需求,TFS的應用程式生命週期管理與我們想要的完全相同,以及我們想要工作的方式.我們的一個關鍵點是共享程式碼問題.
我們正在評估其他商業和開源解決方案,但是由於我們已經通過MSDN訂閱為TFS支付了費用,而TFS正是我們想要的,我們很想找到解決這個問題的方法.
有沒有人面對這個並提出解決方案?
如果您已經看過一篇文章或者發表了這篇文章,您可以與我分享,這也將有所幫助.
像往常一樣,我開放的答案像“你正在看著一切都錯了,骨頭,這裡應該做的方式.
我認為這裡有一些誤會.首先,您可以在單個TFS專案中擁有多個(儘可能多的)解決方案.另外,一個Visual Studio專案可以有任意數量的解決方案.
第二,你使用什麼版本的TFS? 2010年與2005/08不同,處理TFS專案.
在2008年以前,有幾種方法可以根據你想要解決的問題來解決這個問題.您可以擁有多個TFS專案或單個TFS專案.
我會從多個開始.
為您的共享庫型別程式碼設定一個TFS專案,併為每個常規專案設定其他專案.作為該共享庫的開發過程的一部分,請檢查已完成的程式集.然後將這些程式集分配到您要使用它們的任何其他TFS專案中.當對共享庫執行功能更新或錯誤修復時,只需將分支合併到要進行更新的任何其他TFS專案中即可.
這樣,您可以為單個應用程式進行共享更改,而無需將其全部推送.
如果您想要一個單獨的TFS專案儲存所有內容,只需為每個您想要的Visual Studio專案新增資料夾.視覺工作室解決方案可以在沒有問題的情況下回溯到其基礎之外的專案.現在,當為每個解決方案配置Builds時,請確保您限制構建伺服器從/ watches提取的目錄.這樣,當您對外部網站進行更改時,您就無需構建其中的一個內部網站.
http://stackoverflow.com/questions/2866761/tfs-and-shared-projects-in-multiple-solutions