C ++ C#项目依赖管理

时间:2011-01-20 09:34:53

标签: c# .net c++ project-management dependency-management

我正在试图弄清楚如何管理我们的主要Visual Studio解决方案。 在解决方案中,我们必须管理C ++ / CLI项目,C ++本机项目,C#项目,外部依赖项(具有自己的依赖项的已编译C#程序集),由其他团队管理并经常更新(连同其依赖项)。

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

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

我的一个问题是,如果我有一个需要C#project1a.dll和C#project 1b.dll的C#project1.dll,如果我的C#project2需要project1.dll,我宁愿不添加project1a.dll和project1b.dll到project2引用,但我想在我的输出文件夹中找到它(这是因为project1a由另一个团队管理,并且日复一日可能需要project1x.dll才能工作)。

你是如何解决这个要求的?

2 个答案:

答案 0 :(得分:1)

这是一个请求类似功能的Microsoft Connect suggestion,(实际上这是我的)。不幸的是,引用不会很好地更新您的解决方案构建配置。在某些情况下(例如二进制引用),它会强制您拆分项目并维护冗余项目/解决方案。

如果您可以从 source 构建所有项目,那么您无需担心,但这种情况很少见,您可以在连接建议中看到,某些系统依赖项无法实现。

这是一个blog post,用于构建自定义的重要任务。

答案 1 :(得分:0)

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