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

但这可能吗?

有帮助吗?

解决方案

以一制止多重违法行为 抑制消息 官方不支持属性。显然,这是设计使然。

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

其他提示

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top