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

本文关键字:csproj 文件 解决方案 验证 | 更新日期: 2023-09-27 18:03:48

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

验证意味着检查,例如:

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

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

在我看来,这似乎是一个问题,许多其他人必须有,但我还没有找到任何工具,可以帮助简化或自动化这个过程。我想应该是StyleCop或者FxCop之类的东西。

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

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

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

恐怕没有工具可以做到这一点。这就是为什么我的一个同事编写了一个自定义工具来用自定义规则验证器验证.csproj.vbproj文件的原因。

有一些类来检查项目文件,这可能对你很方便,比如Microsoft.Build.Evaluation.Project (Assembly Microsoft.Build)。但当你试图解析解决方案文件时,它会变得很脏。我强烈建议大家在StackOverflow上看看这个问题。

我正在谈论的内部验证工具只是检查定义的规则(如ToolsVersion, TargetFrameworkVersion, TargetCPU,…)并以格式绘制相应的输出,以便构建服务器可以解析消息并在违反重要规则时停止构建。

祝你好运!