我在一家拥有基于数百个 Visual Studio 解决方案(主要是 C++)的产品套件的组织工作。其中一些解决方案会生成其他解决方案使用的库,并且还有一个常见的“包含”文件夹,其中包含由多个模块共享的标头。
问题是依赖关系没有在任何地方明确说明,并且构建系统通过指定线性构建顺序来解决依赖关系,以确保在正确的时间构建依赖模块。这适用于构建系统,但在尝试处理具有许多直接和间接外部依赖项的组件时使开发人员处于劣势。例如,我可能想编辑其中一个库项目或共享标头,然后构建所有受影响的模块,而不必提前知道哪些模块受到影响。另一个用例涉及在从 TFS 进行新的拉取之后构建一个模块,并首先构建它所依赖的模块,而不必构建整个系统。
我想知道是否有任何可用的工具可以自动生成用于构建大型项目的依赖项。我考虑过创建一些非常大的解决方案来封装其他解决方案,但这看起来真的很尴尬和笨拙。此外,我不喜欢让开发人员手动指定依赖项的想法,因为这很容易出错,尤其是对于如此庞大的代码库。几年前我使用过 scons,非常喜欢它解析源文件并自动发现所有依赖项的方式。今天有什么东西可以用 Visual Studio 解决方案做同样的事情吗?
这不是Visual Studio 的副本:如何正确处理项目依赖关系?
我需要强调我要解决的问题的严重性。这是一个非常大的现有代码库。在主目录中有数百个子文件夹,每个子文件夹包含多个 VS 解决方案之一(不是项目)。每个解决方案又包含一个或多个项目。正如我之前所说,我并不是要在解决方案中的几个项目之间建立依赖关系。问题远不止于此。我正在尝试找到一种方法来建立解决方案本身(数百个)之间的依赖关系。例如,一个解决方案可能包含一些项目,这些项目生成用于安全的库,另一些用于通信等。例如,可能有数十个使用这些通信库的解决方案。所以本质上我'