2011-01-20 92 views
3

我想弄清楚如何管理我們的主Visual Studio解決方案。 在解決方案中,我們必須管理其他團隊管理的C++/CLI項目,C++本機項目,C#項目,外部依賴項(已編譯的C#程序集及其自己的依賴項),並經常更新(以及它們的依賴項)。C++ C#項目依賴管理

每種類型的項目都可以是彼此的依賴項(當然除了C#或C++本機)。
一些C#項目依賴於外部DLL,這可能需要其他一些DLL才能正常工作。

到目前爲止,我們已經使用構建後步驟來複制對每個項目輸出目錄的引用(C++庫的額外依賴關係以及外部編譯和所需的C++ DLL)。 我們想自動化這個過程。項目很多,外部DLL通常由其他團隊管理(有時它們會增加越來越多的依賴關係),我們希望他們所做的每個更改都會自動反映到我們的主項目中。
是否有一個工具,批處理文件的最佳實踐,或者是不要在這個依賴性地獄中迷失自我,每次在解決方案中包含新項目時只做一個svn更新和一點配置工作?

我的問題之一是如果我有一個C#project1.dll需要C#project1a.dll和C#項目1b.dll,如果我的C#project2需要project1.dll我不想添加project1a.dll和project1b。 dll到project2的引用,但我想在我的輸出文件夾中找到它(這是因爲project1a由另一個團隊管理,並且日復一日可能需要project1x.dll才能工作)。

你是如何解決這個需求的?

+0

VS中有一個選項可以自動鏈接項目依賴關係。我根據一堆庫(boost,BLAS等),C++/CLI DLLS和C#項目(共享加載項,獨立控制檯程序,Windows窗體程序)管理帶有多個C++靜態庫的相當大的項目,並且我從未碰到任何依賴管理問題。唯一的是爲連接器指定(分佈式)DLL的外部庫,而不是靜態庫。我使用VS2005。 – 2011-01-20 10:35:20

回答

1

這是微軟Connect suggestion請求相似的功能,(這是我的實際)。不幸的是,參考文獻不會更新您的解決方案構建配置。它迫使你拆分你的項目並在某些情況下維護冗餘項目/解決方案(如二進制引用)。

如果您可以從構建您的所有項目,那麼您沒有什麼可擔心的,但這很少見,並且您可以在連接建議中看到,對於某些系統依賴項不可用。

這是一個blog post一些重型構建定製。

+0

不幸的是,第一個鏈接被破壞 – Lu55 2012-10-25 21:06:11