由於我們構建/維護的產品數量衆多,因此我們有一個相當複雜的dll結構(> 100個程序集)。我們正在安裝TFS 2012.我們目前使用NuGet來管理對外部dll的引用。VS,Nuget,TFS - 管理複雜的內部依賴性結構
看來,Nuget可能是管理我們內部dll的答案。
這裏是我們的結構的一個示例:
- Framework.dll
- Business.dll
- 引用:Framework.dll
- Business.X.dll
- 參考:Framework.dll
- 引用:Business.dll
- Application.X.dll
- 裁判:Framework.dll
- 裁判:Business.X.dll
- 裁判:Business.dll
爲了完成NuGet,我爲每個程序集創建了一個nuget spec /包。然後每個包裹都包含它的依賴包(s)。
- Framework.1.0.nupkg
- Business.1.0.nupkg
- 取決於:框架
- Business.X.1.0.nupkg
- 取決於:框架,業務
- Application.X.1.0.nupkg
- 取決於:框架,商業,Business.X
1)我創建的框架VS項目,建造它,和它打包到Framework.1.0.nupkg 2)我打開Business VS項目,並通過安裝Framework.1.0.nupkg 添加了對Framework.dll的引用。3)然後,我將Business VS項目構建並打包爲Business.1.0.nupkg 4)我重複了每個程序集(FYI,我用NuGetter來自動化這個)
我是無法協調本地開發人員機器和構建服務器之間的差異。
這是我的理解:
- 我不需要最後組裝存儲在TFS因爲的NuGet的包還原功能。
- 而不是引用程序集,引用是使用NuGet添加的。例如,在Business VS項目中,框架程序集是從Nuget Framework.1.0包中添加的。
但是,這使得彙編開發人員難以構建/測試新功能。如何開發Business和Business.X程序集的開發人員在本地(在他們自己的機器上)測試一個功能而不移除/讀取引用。這是必要的,因爲Business.X引用了已打包的業務,而不是本地生成的Business.dll。
我的目標:
- 使用一個構建服務器生產版本,共享組件
- 允許消費者應用程序引用
- 共享組件允許開發人員在當地之前添加到這些組件,以方便編譯/測試需要服務器版本
我認爲Nuget對於#1和#2運行良好,但我似乎無法完成#3。有一個更好的方法嗎?
感謝您的任何信息/指針!
你不能使用單元測試來確保組件是好的嗎? – Betty
我同意@Betty它看起來好像你只需要一些好的UTs就可以作爲他們的門控簽名的一部分包含在共享的asm開發者中 – allen