2011-04-02 70 views
3

想知道社區如何在大型團隊中工作以及具有數十種不同解決方案時如何組織.net DLL庫?如何在大型代碼庫中組織您的外部庫

我特別好奇的是,人們是否選擇了某種'庫'文件夾,其中包含所有項目使用的所有外部DLL,以及人們是否版本自己的DLL或者只是在發佈DLL的新版本時覆蓋DLL並希望在下一個重新編譯的.NET解決方案挑剔

我也不清楚你是否可以簡單地將一個不同版本的DLL放入一個文件夾並讓解決方案選擇它或者.net是否強制你使用特定版本(注意:我們不需要簽署我們的任何程序集)

回答

4

我在我們的存儲庫中有一個專用文件夾,用於第三方庫和DLL,項目可以參考。

至於版本控制的事情,我在個案的基礎上做到這一點。對於一些沒有經常更新或者我不打算更新到最新版本的庫,如果它出現的話,我只是把DLL放在那裏。
然而,對於主要的圖書館,其更新的時候我通常會做以下模式:

<LibName>/Current/<LibName>.dll 
<LibName>/v1.1/<LibName>.dll 
<LibName>/v1.2/<LibName>.dll 

大多數項目只會基準的DLL中的「當前」文件夾中。但是,如果有問題,那麼他們可以參考一個較舊的問題。這樣做的好處是,如果發現問題,切換引用以查看它是否存在舊版本很容易。

注意:如果某個項目依賴於另一個項目,則需要在項目之間使用相同的版本,因此最好嘗試儘可能使用最新版本。

0

目前通常會有一個Libs目錄,該目錄會與解決方案的其餘部分以及每個項目的DLL的相對引用簽入。只要新版本具有相同的名稱,它就會被選中 - 只要確保解決方案中的所有項目都引用相同的路徑即可。

但是前進,新興的最佳實踐將使用NuGet管理您對第三方庫的依賴關係。我們現在剛剛開始部署這個 - 對於像Prism這樣的外部庫已經很好,但是也允許您爲自己的共享庫創建中央存儲庫。