9

当您使用 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")]

但这可能吗?

4

2 回答 2

9

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

我同意,有时可能很烦人,但我不能说我不同意这个决定,因为这个属性是他们强迫你说“是的,我知道我在做什么”的方式,应该在根据具体情况。

于 2008-09-16T15:07:44.863 回答
1

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

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

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

于 2013-09-21T09:16:17.133 回答