【问题标题】:Can I suppress FX Cop code analysis violations globally?我可以在全球范围内禁止 FX Cop 代码分析违规行为吗?
【发布时间】:2010-09-09 12:37:31
【问题描述】:

当您使用 Visual Studio 的代码分析 (FxCop) 并想要禁止显示消息时,有 3 个选项。

  1. 禁止违反代码。
  2. 抑制 GlobalSupression.cs 文件中的违规行为。
  3. 禁用项目文件中的违规检查(通过项目 -> 属性 -> 代码分析)。

在签入源代码管理时很难查看后者,并且很难获得所有禁用违规的概览。所以我们想使用选项 2。

选项 1 和 2 的问题是每次违规都会得到一条抑制线。比如:

[assembly: SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "Company.Project.Namespace2")]
[assembly: SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "Company.Project.Namespace1")]

我们很乐意在 GlobalSuppressions.cs 中做这样的事情:

[assembly: SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes")]

但这可能吗?

【问题讨论】:

    标签: .net visual-studio code-analysis


    【解决方案1】:

    官方不支持使用单个 SuppressMessage 属性抑制多个违规行为。显然,这是设计使然。

    我同意,有时可能会很烦人,但我不能说我不同意这个决定,因为这个属性是他们强迫你说“是的,我知道我在做什么”的方式,这应该逐案评估。

    【讨论】:

      【解决方案2】:

      我认为自从发布并回答了这个问题后情况发生了变化。对于 Visual Studio 2010 和 2012,您可以创建自定义“规则集”文件,您可以在其中指定要禁止的代码分析规则。

      http://msdn.microsoft.com/en-us/library/dd380660.aspx

      所以我所做的是在我的存储库源集合的顶级文件夹中创建一个自定义规则集文件,并在每个 Visual Studio 项目中引用该文件。这意味着我有一个中心位置可以抑制我根本无法忍受的代码分析规则。但是,如果我改变主意,或者决定重新考虑我的不良编码习惯,我可以非常简单地重新启用规则并查看我收到了多少代码分析消息。

      【讨论】:

        猜你喜欢
        • 2016-01-03
        • 1970-01-01
        • 2017-01-03
        • 1970-01-01
        • 2019-01-23
        • 2022-01-20
        • 1970-01-01
        相关资源
        最近更新 更多