0

我有一個解決方案,其中包含多個項目,例如說10個測試相關的項目都依賴於nunit。目前,我的解決方案結構包含Tools和Lib文件夾,因此可能完整的nunit下載位於Tools中,而只是Lib中的dll。包管理器,項目結構和遷移

我想任何包管理器(NuGet和OpenWrap都是我正在查看的兩個)需要爲包創建它自己的「已知」位置。所以,儘管老式的包管理方式,手動更新我的Lib文件夾之後,我知道每個對nunit有依賴性的項目只是得到了更新。

但是,如果我使用包管理器進行更新,我需要訪問每個項目以確保它已更新並指向相同的參考,是的?有些DLL可能不會被發現(我現在在想着unHAddins),所以你沒有完全從手冊包管理中解放出來。在包管理器更新每個項目之前,不會執行向最新更新的意義遷移。

所以我想知道如果我的理解是正確的,什麼整合的軟件包管理到一箇中型的解決方案,最好的辦法是 - 例如:

0) add to source control: NuGet 'packages' folder or OpenWrap 'wraps' folder 
1) pick a dll (start with one that you beleieve has minimal dependencies) 
2) pick a project (ideally with minimal dependencies that might break) 
3) if OpenWrap, get the package you want into 'wraps' 
4) for each project: 
    a) add reference to subject dll (manually if OpenWrap, NuGet will add for you) 
    b) fix compile error as needed 
    c) run tests 

這聽起來對嗎?

乾杯,
Berryl

回答

1

要回答你的問題,不,你沒有與openwrap做任何事,所有的項目導入一個範圍內的所有依存關係,所以更新適用於一切。

我無法回答其他軟件包管理器,但在openwrap中,您需要在源代碼控制中添加/ wraps文件夾,並在添加或更新它們時添加這些軟件包。該過程將首先從遠程存儲庫添加軟件包(或者如果沒有可用的組件,則從現有組件創建一個),然後手動刪除/ lib中的引用。在OpenWrap中,我們不會將引用添加到您的csproj中,我們在構建時添加它們,因此如果/ lib中已經存在依賴項,我們將不會添加它。這意味着您可以添加所有軟件包,並逐個刪除引用,每次運行測試。

希望這是一個暫時性的問題,直到所有的dll都可以作爲軟件包使用,這將會發生的很快。

+0

謝謝,Sebastion - 我相應地更新了我的俗氣流程。 – Berryl 2011-02-16 19:01:43