在全局级别抑制StyleCop警告

本文关键字:StyleCop 警告 全局 | 更新日期: 2023-09-27 18:07:16

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

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

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

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

在全局级别抑制StyleCop警告

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

来源分析博客(来源)

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

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

似乎您可能需要更改StyleCop配置(设置),而不是全局禁用某些规则。StyleCop设置是"通过文件系统继承的",所以你可以在解决方案文件夹的级别上创建一个适当的设置文件。

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

VS2015 + StyleCop分析仪:

StyleCop.Settings不再被使用,但是您仍然可以做JaredPar所说的并全局关闭特定警告。修改当前的规则集(在项目的Properties GUI> Code Analysis> Open下),并将更改保存为新规则集。

文件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>

找到.ruleset文件。(在解决方案项下或任何地方)将Action更改为None

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