验证解决方案中的 .csproj 文件

8
我希望能够验证我的.csproj文件,无论是在添加到解决方案时还是在CI构建服务器上构建时。

验证意味着检查以下内容:

  • 路径和项目文件名是否符合约定
  • 程序集名称和命名空间是否符合命名约定
  • 平台目标是否正确
  • 输出路径是否正确(Release和Debug)
  • 警告级别是否正确,且警告被视为错误
  • 项目中是否存在某些文件(如AssemblyInfo.cs等)。
  • 程序集是否已正确引用
  • 等等

另一个有用的功能是能够忽略某些项目,或者更好的是能够定义项目分组,每个分组都有自己的验证规则。

这对我来说似乎是一个许多人必须面对的问题,但是我尚未找到任何可以帮助简化或自动化此过程的工具。我想象它可能类似于StyleCop或FxCop。

是否存在这样的工具,或者我必须创建自己的自定义构建步骤?

(我也正在使用ReSharper,因此会考虑插件,尽管这可能会使构建服务器上的验证更加困难。)

1个回答

3
据我所知,目前没有实现此功能的工具。这就是为什么我的一位同事编写了一个自定义工具来验证带有自定义规则验证器的.csproj.vbproj文件的原因。
有一些类可用于检查项目文件,例如Microsoft.Build.Evaluation.Project(程序集Microsoft.Build)。但是当您尝试解析解决方案文件时,它会变得非常混乱。我强烈建议您查看StackOverflow上的问题
我提到的内部验证工具只是检查定义的规则(例如ToolsVersionTargetFrameworkVersionTargetCPU等),并以格式绘制相应的输出,以便构建服务器可以解析消息并在重要规则被违反时停止构建。

祝你好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接