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

g t*_*g t 7 c# validation continuous-integration csproj visual-studio

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

验证意味着检查,例如:

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

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

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

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

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

Wae*_*her 3

AFAIK 没有工具可以实现这一点.csproj这就是为什么我的同事编写了一个自定义工具来验证并使用自定义规则验证器编写文件的原因.vbproj

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

我所说的内部验证工具只是检查定义的规则(如ToolsVersionTargetFrameworkVersionTargetCPU、 ...)并以某种格式绘制相应的输出,以便构建服务器可以解析消息并在重要规则出现时停止构建破碎的。

祝你好运!