我需要让解决方案中的所有项目都包含一些额外的构建操作,例如 StyleCop 验证、AssemblyInfo 的自动生成等。
我的想法是进行某种解决方案范围的预构建事件,该事件将检查所有项目文件是否包含与特定 xPath 匹配的节点。这不是一个难点,它可以通过自定义构建任务或一些第三方 Xml 处理任务来解决。我还没有深入研究它,但它绝对不会成为值得一提的问题。
问题是如何
1) 使用一些自定义任务扩展解决方案文件?它不应该是解决方案的必要组成部分。这是需要的,但在从 VS 构建时可以省略,有一些特定的命令行来执行它就足够了。
2)如果不可能,“解决方案范围的预构建事件? ”中描述了选项。它很hacky,但如果没有其他选择,我会使用它。但是如何从解决方案文件中获取项目文件列表?请考虑到包含解决方案的文件夹可能包含不应检查的额外项目文件,因此仅枚举所有 ***.*proj 不是一个选项。
PS也欢迎针对整个问题的任何其他选项:)