我正在努力找出如何管理我们的主要Visual Studio解决方案。在这个解决方案中,我们需要管理C++/CLI项目、C++本地项目、C#项目、由其他团队管理并经常更新的外部依赖项(编译的带有自己依赖项的C#程序集)。
每种类型的项目都可以成为彼此的依赖项(当然除了C#或C++本地项目)。一些C#项目有对外部DLL的依赖关系,这些DLL可能需要一些其他DLL才能正常工作。
到目前为止,我们使用后构建步骤将引用复制到每个项目的输出目录(额外的依赖项用于编译外部C#库和所需的C++ DLL)。我们想要自动化这个过程。项目很多,外部DLL通常由其他团队管理(有时他们会添加越来越多的依赖项),我们希望他们做出的每个更改都可以自动反映在我们的主要项目中。是否有工具、批处理文件的最佳实践或其他方法,可以避免陷入这种依赖性地狱,并只需在每次将新项目包含在解决方案中时进行svn更新和少量配置工作?
我的一个问题是,如果我有一个C#项目1.dll,它需要C#项目1a.dll和C#项目1b.dll,如果我的C#项目2需要项目1.dll,我宁愿不将项目1a.dll和项目1b.dll添加到项目2的引用中,而是希望在我的输出文件夹中找到它(这是因为项目1a由另一个团队管理,并且可能每天需要项目1x.dll才能工作)。
你是如何解决这个要求的?