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

时间:2015-07-21 07:20:43

标签: c# visual-studio validation continuous-integration csproj

我希望能够验证我的.csproj文件,因为它们已添加到解决方案中,或者在我们的CI构建服务器上构建时。

验证意味着检查,例如:

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

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

在我看来,这是许多其他人必须拥有的问题,但是我还没有找到任何可以帮助简化或自动化此过程的工具。我想象它可能是StyleCop或FxCop。

是否存在此类工具或是否必须创建自己的自定义构建步骤?

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

1 个答案:

答案 0 :(得分:2)

AFAIK没有tool to achieve this。这就是为什么我的拼贴使用自定义规则验证器对自定义工具进行编码以验证.csproj.vbproj文件的原因。

有些类可以检查项目文件,例如,Microsoft.Build.Evaluation.Project(程序集Microsoft.Build)可能对您有用。但是当你试图解析解决方案文件时它会变得很脏。我强烈建议您查看此question on StackOverflow

我正在讨论的内部验证工具只是检查已定义的规则(如ToolsVersionTargetFrameworkVersionTargetCPU,...)并以格式绘制相应的输出这样构建服务器就可以解析消息并在重要规则被破坏时停止构建。

祝你好运!