在全局级别抑制StyleCop警告

时间:2011-08-30 17:21:48

标签: c# msbuild jenkins stylecop

如何在解决方案中全局抑制StyleCop警告?

使用Jenkins(连续构建和集成工具)不断构建解决方案,并应用所有StyleCop规则。该解决方案使用TAB字符而不是4个空格,因为它是我的开发团队采用的标准。因此,StlyeCop会抛出几个SA1027警告。

如何从Jenkins删除SA1027警告?那也有帮助。

在每个C#文件上给出SuppressMessage看起来不太好看。这就是为什么我在寻找全局抑制方法。

5 个答案:

答案 0 :(得分:4)

似乎您可能需要更改StyleCop配置(设置),而不是全局禁止某些规则。 StyleCop设置是“通过文件系统继承的”,因此您只需在解决方案文件夹级别创建适当的设置文件。

关于特定的“制表符与空格”主题,您不仅可以关闭需要空格的StyleCop规则,还可以使用包含需要制表符的规则的一些StyleCop插件(如StyleCop +)。

答案 1 :(得分:3)

StyleCop不支持全局抑制规则的概念。它需要将SuppressMessage属性放在给定的代码元素上。

来自源分析博客(Source

  

StyleCop不支持全局抑制或文件级抑制的概念。必须将抑制放在代码元素上。

一种选择是简单地关闭您不感兴趣的规则。这是全局抑制的首选方法。

答案 2 :(得分:1)

VS2015 + StyleCop分析仪:

StyleCop.Settings不再使用了,但您仍然可以执行JaredPar所说的内容并在全局范围内关闭特定警告。通过修改当前规则集(在项目的属性GUI>代码分析>打开下)并将更改保存为新规则集来执行此操作。

答案 3 :(得分:0)

文件Settings.StyleCop应包含:

<StyleCopSettings Version="105">
  <Analyzers>
    <Analyzer AnalyzerId="StyleCop.CSharp.SpacingRules">
      <Rules>
        <Rule Name="TabsMustNotBeUsed">
          <RuleSettings>
            <BooleanProperty Name="Enabled">False</BooleanProperty>
          </RuleSettings>
        </Rule>
      </Rules>
      <AnalyzerSettings />
    </Analyzer>
  </Analyzers>
</StyleCopSettings>

答案 4 :(得分:0)

找到您的.ruleset文件。 (在“解决方案项目”下或在任何位置)将Action更改为None

<Rule Id="SA1027" Action="None" />