【发布时间】:2017-08-10 18:00:47
【问题描述】:
我们在多个软件项目中使用single master solution strategy,最近有人在公共代码中添加了一个依赖项,这破坏了另一个项目的解决方案,直到新的依赖项被添加到他们的解决方案中。消除或尽量减少此类问题的好策略是什么?
我们想到了以下几点:
- 在签入日志消息中添加一个关键字,告诉其他项目添加依赖项(但这是一个手动过程)
- 使用多个分区解决方案而不是单个主解决方案(导致构建时间更长、跨解决方案失去智能感知等)
- 使用工具从多个分区解决方案创建主解决方案(有任何适用于 VS2015 的建议,这可以自动化吗?)
到目前为止,我们最大的单一主解决方案是 115 个项目文件,因此仅在此基础上似乎没有必要对解决方案进行分区,除非这是解决我们问题的最佳方法。
如果你遇到过这个问题,你是怎么解决的?
【问题讨论】:
-
什么语言? C++?您可以使用项目引用,它们是项目文件而不是解决方案文件的一部分,因此使用该项目的每个解决方案都会自动获取引用。
-
是的,C++。我们使用引用,但如果引用的项目不在解决方案中,有没有办法告诉 Visual Studio 无论如何都要构建它?
-
我很确定没有内置方法。您可以使用 msbuild 目标创建一个文件,该目标仅构建它看到的所有项目引用,然后将该文件包含在您拥有的所有项目中。几乎完美,如果不是它仍然无法构建,例如解决方案 A 没有变化,但是解决方案 A 之外的项目的源文件发生了变化,因为 A 不会检测到它自己的项目的任何变化。这可能也可以修复,但这已经更难了。无论如何:我选择的解决方案是进行 CI 设置,以便尽早发现任何构建损坏:]
-
@stijn 请给出你的答案,以便我接受。
标签: visual-studio visual-studio-2015 projects-and-solutions maintenance