在我上一个项目中,我们使用MSBuild作为脚本语言。 (是的,真的!)我们还编写了数百个自定义MSBuild任务,用于C#中更有意义的部分。 (我甚至写了一个MSBuild任务来生成MSBuild任务的样板代码,是的,它自己消耗了)在.NET中管理依赖关系树的最佳方式是什么?
尽管我不建议其他人采用这种方法,但我发现其中一个非常有用的东西是内置的依赖管理。正如你所期望的那样,很容易表达依赖关系,并让MSBuild负责满足它们。例如,我们软件中几乎每一步都需要将某组文件复制到某个特定位置。你可以很容易地写:
Step1: CopyFiles
Step2: CopyFiles, Step1
,当你执行Step2
,也只是将文件复制一次。
构建和满足依赖树是软件中很常见的。我希望MSBuild团队将他们的依赖管理代码,从MSBuild中解耦出来,并将其转移到任何人都可以使用的.NET Framework中。那么,你认为用这种方式管理依赖关系的最佳选择是什么?