2

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

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

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

该文档显示了您可以在哪里打开/关闭单个规则,但它似乎不支持设置严重性,只能完全打开/关闭它们。

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

4

1 回答 1

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)"
        />

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

此外,您将需要使用两个单独的设置文件 - 第一个带有 stylecop 'errors',第二个带有 'warnings'。

于 2013-04-16T12:42:08.290 回答