1

我们有一个包含许多不同解决方案文件的项目,然后每个解决方案都有许多项目。问题是需要为某些解决方案构建项目。每个开发人员都必须经历打开大型解决方案(包含许多项目的解决方案)的痛苦。问题是这些解决方案并不总是构建,因为必须遵循特定的构建顺序。

我的问题是,有没有办法识别给定目录中每个项目的依赖关系,然后构建这些项目。比如找到所有对我们拥有的其他项目没有任何依赖关系的项目文件。所以先构建这样的项目,然后再构建已经构建了依赖项的项目。

我正在考虑使用 F# 或 Fake 来执行此操作,但我不确定从哪里开始,或者是否可能。

我真的很感激一个例子或我可以获得帮助的链接的答案。

问候,

纳西尔

4

2 回答 2

2

如果你想买现成的东西。来自 JetBrains 的 Resharper 有一个非常好的工具来查看项目构建依赖项。这将帮助您创建具有正确构建顺序的构建脚本。

http://www.jetbrains.com/resharper/webhelp/Architecture__Project_Dependencies_Exploration.html

于 2014-08-29T15:17:10.790 回答
1

自己在 F# 中实现分析不会太复杂。

例如,您可以分两个阶段进行:
1. 浏览您的解决方案文件夹结构并构建(项目文件名 -> 文件的完整路径)的映射。
2. 浏览您找到的所有文件,并为每个文件将对其他解决方案项目的引用添加到图形结构中。

然后您逐步构建没有任何(尚未构建的)引用的项目。

项目文件很容易解析,是 XML。解决方案项目可以通过相对路径引用来识别:

<ProjectReference Include="..\MyProjFolder\MyProjFile.csproj">
<!--                      --^                              -->
于 2014-08-29T15:44:13.687 回答