C++;C#项目依赖关系管理

C++;C#项目依赖关系管理,c#,.net,c++,project-management,dependency-management,C#,.net,C++,Project Management,Dependency Management,我正试图找出如何管理我们的主要VisualStudio解决方案。 在解决方案中,我们必须管理C++/CLI项目、C++本地项目、C++项目、外部依赖(编译的C组件),并由其他团队管理并经常更新(连同它们的依赖关系)。p> 每个项目类型可以是相互依赖的(当然除了C语言或C++语言)。 一些C#项目依赖于外部DLL,这可能需要一些其他DLL才能正常工作 直到现在,我们已经使用了POST生成步骤来复制对每个项目的输出目录的引用(对于外部编译的C++库的附加依赖性和需要的C++ DLL)。 我们希望将此

我正试图找出如何管理我们的主要VisualStudio解决方案。 在解决方案中,我们必须管理C++/CLI项目、C++本地项目、C++项目、外部依赖(编译的C组件),并由其他团队管理并经常更新(连同它们的依赖关系)。p>

每个项目类型可以是相互依赖的(当然除了C语言或C++语言)。 一些C#项目依赖于外部DLL,这可能需要一些其他DLL才能正常工作

直到现在,我们已经使用了POST生成步骤来复制对每个项目的输出目录的引用(对于外部编译的C++库的附加依赖性和需要的C++ DLL)。 我们希望将此过程自动化。项目很多,外部DLL通常由其他团队管理(有时他们会添加越来越多的依赖项),我们希望他们所做的每一项更改都能自动反映在我们的主项目上。
是否有一种工具、批处理文件的最佳实践或其他东西可以让我们不迷失在这个依赖地狱中,每次解决方案中包含一个新项目时,只需进行svn更新和一点配置工作

我的一个问题是,如果我有一个C#project1.dll,它需要C#project1a.dll和C#project1b.dll,如果我的C#project2需要project1.dll,我不希望将project1a.dll和project1b.dll添加到project2引用中,但我希望在我的输出文件夹中找到它(这是因为project1a由另一个团队管理,每天都可能需要project1x.dll才能工作)


您是如何解决这个问题的?

您可以尝试使用NuGet并托管您自己的?

这里有一个Microsoft Connect请求simular功能(实际上这是我的)。不幸的是,引用不能很好地随解决方案生成配置更新。在某些情况下(如二进制引用),它会迫使您拆分项目并维护冗余的项目/解决方案

如果您可以从源代码构建所有项目,那么您就不必担心,但这种情况很少见,并且您可以在connect建议中看到,对于某些系统依赖项,这是不可能的


这是一个用于构建定制的重量级任务。

在VS中有一个选项自动链接项目依赖关系。我管理的是很多C++项目的静态项目,依赖于一堆库(Boost、BLAS等)、C++/CLI DLL和C类项目(共享插件、独立控制台程序、Windows窗体程序)。我在依赖关系管理方面从未遇到任何问题。唯一的问题是为(分布式)DLL的链接器指定外部LIB,而不是静态LIB。我使用VS2005。不幸的是,第一个链接断开了