将单个StyleCop规则设置为构建错误

时间:2013-04-16 02:26:27

标签: c# .net msbuild stylecop

根据this blog,您可以将所有/某些项目设置为将StyleCop违规视为构建错误而不是警告:

  

默认情况下,StyleCop违规将显示为构建警告。 要将StyleCop违规转换为构建错误,必须将标志StyleCopTreatErrorsAsWarnings设置为false。此标志可以在机器上或构建环境命令窗口中设置为环境变量。以这种方式设置标志将导致StyleCop违规自动显示为启用了StyleCop构建集成的所有项目的构建错误。

     

或者,可以在特定项目的项目文件中设置此标志。再次打开项目的.csproj文件,找到文件中的第一个PropertyGroup部分。添加新标记以将StyleCopTreatErrorsAsWarnings标志设置为false。

This doc显示您可以打开/关闭各个规则的位置,但它似乎不支持设置严重性,只是完全打开/关闭它们。

是否无法更精细地控制哪些规则导致错误与警告?

1 个答案:

答案 0 :(得分:2)

它不应该,但如果你真的想要它......为什么不呢?

这是一个想法,而不是一个完整的解决方案。

StyleCop.Targets文件中有两行有用。首先导入StyleCop任务:

<UsingTask AssemblyFile=".\StyleCop.dll" TaskName="StyleCopTask"/>

这个人称之为:

<StyleCopTask
  ProjectFullPath="$(MSBuildProjectDirectory)"
  SourceFiles="@(StyleCopFiles)"
  AdditionalAddinPaths="@(StyleCopAdditionalAddinPaths)"
  ForceFullAnalysis="$(StyleCopForceFullAnalysis)"
  DefineConstants="$(DefineConstants)"
  TreatErrorsAsWarnings="$(StyleCopTreatErrorsAsWarnings)"
  CacheResults="$(StyleCopCacheResults)"
  OverrideSettingsFile="$(StyleCopOverrideSettingsFile)"
  OutputFile="$(StyleCopOutputFile)"
  MaxViolationCount="$(StyleCopMaxViolationCount)"
        />

所以你基本上需要调用它两次,第一次将TreatErrorsAsWarnings指定为false(如果有任何警告就会失败),第二次指定true(导致只是警告)。

此外,您需要使用两个单独的设置文件 - 第一个使用stylecop'错误',第二个使用'警告'。