【问题标题】:Ignore code analysis rules in Visual Studio忽略 Visual Studio 中的代码分析规则
【发布时间】:2023-04-08 05:04:02
【问题描述】:

我如何忽略一个特定的 VS 代码分析规则(比如 CA1305 : Microsoft.Globalization):

  • 方法?
  • 上课?
  • 命名空间?

(假设这些选项都是可能的。)

【问题讨论】:

标签: visual-studio visual-studio-2008 code-analysis


【解决方案1】:

你可以像这样使用 SupressMessage 属性:-

[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2233:OperationsShouldNotOverflow", MessageId = "newValue+1", Justification = "The reason I think its acceptable in this case")]
void SomeMethod()
{
   // Some code that would normal cause this Code Analysis message
}

关于方法、属性、类型等

【讨论】:

  • @AnthonyWJones:我在一种方法上尝试了[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1305:Microsoft.Globalization")](为简洁起见),但仍然显示警告。有什么想法吗?
  • @Alex:尝试将类别更改为“Microsoft.Globalization”,请参阅:- msdn.microsoft.com/en-us/library/ms182190.aspx
  • 您可以尝试运行 FxCop,右键单击错误,然后选择 Copy As SuppressMessage。这应该会为您提供正确的属性文本。
  • 请注意,您必须使用 CODE_ANALYSIS 条件编译。
【解决方案2】:

使用#pragma warning(suppress: Cxxxx)

您可以将 pragma 放在源文件中的适当范围内(即类、方法)

http://msdn.microsoft.com/en-us/library/2c8f766e(VS.80).aspx

【讨论】:

  • #pragma 警告适用于编译器警告。它也适用于代码分析吗?
  • @OregonGhost #pragma warning(suppress) 是专门为 TFS 代码分析引入的。
  • @JaredPar 这个问题没有提到 FxCop?
  • @Stu 它说代码分析警告并按名称提及特定类别 (Microsoft.Globalization)
  • @Stu:我用#pragma warning(suppress: CA1305) 试过这个,但没有成功。想法?
【解决方案3】:

我按照@TrueWill 对@AnthonyWJones 回答的评论的建议下载了 FXCop。这给了我 SuppressMessage:

[SuppressMessage("Microsoft.Globalization",
    "CA1305:SpecifyIFormatProvider",
    MessageId = "System.String.Format(System.String,System.Object)")]

这比原本应该做的要困难得多。 FXCop 与 Visual Studio 的集成发生了什么?感谢回答者的帮助。

【讨论】:

  • 谢谢,如何禁用 StyleCop 警告 SA1307 和 SA1305?
  • @Hamish:我不知道 StyleCop。您可能需要为此提出一个新问题。
  • 好吧,我已经做到了。以防其他人发现这很有用,这里是问题的链接:stackoverflow.com/questions/5265154/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-06
  • 1970-01-01
  • 2010-09-07
  • 1970-01-01
  • 2011-07-29
  • 1970-01-01
相关资源
最近更新 更多