抑制 Visual Studio 中所有项目的警告

Suppress a warning for all projects in Visual Studio

我看到了显示如何抑制针对特定代码行或特定项目的警告的答案。我不要那个。

我想取消对我的 所有 个项目的特定警告。

(如果重要,警告是 IDE0044。我正在使用 C#。)

您可以使用 System.Diagnostics.CodeAnalysis 命名空间下的 SuppressMessage 属性,例如

[SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "args")]

好吧,正如您编辑的那样我想取消对我所有项目的特定警告

你不能对整个项目明智的 AFAIK 这样做。但如果有帮助,请检查一次链接 post

IDE0044 是 "add readonly modifier" 那么为什么不直接添加修饰符呢?

警告告诉你你做错了什么,但应用程序会编译。

理想情况下最好是零警告。

您可以尝试使用 Directory.Build.props adding NoWarn 属性 来获取特定的警告。不过我还没有验证。

正如另一个回答中所说,最好是解决根本原因而不是忽略它。

最近 Visual Studio 2017 (15.7.1) 的更新现在有一个选项。在 Tools->Options 菜单下,select TextEditor->C#->Code Style->General 选项卡。在Field preferences下,有一个Prefer readonly选项。将其设置为 No.

还有一个 editorconfig 设置可以设置,如果你想在你的代码旁边检查这个首选项,这样使用你的代码的其他人就不会收到警告,但必须这样做在每个解决方案的基础上。您要设置的 editorconfig 值为:

 dotnet_style_readonly_field = false:none

要抑制所有项目的警告,您需要在顶级目录中创建一个 .editorconfig 文件。 例如,我在 trunk 中有我的,我将其提交到源代码管理,以便我的同事共享相同的设置。

此文件中的设置适用于主干和子文件夹中的所有项目,除非被文件夹树下方的另一个 .editorconfig 文件覆盖,例如您可能在具有不同设置的子文件夹中有一个项目特定的 EditorConfig 文件。有关详细信息,请参阅 File hierarchy and precedence

正在创建 EditorConfig 文件

如果您只想更改一个特定设置,则可以使用文本编辑器。但是,Visual Studio 可以为您创建一个具有 .NET 合理默认值的 .editorconfig 文件。来自 MSDN:

  • 新建项目

  • 从菜单栏中选择 项目 > 添加新项目;或按 Ctrl+Shift+A

  • Select editorconfig File (.NET) 模板,用于添加预填充了默认 .NET 代码样式、格式和命名约定的 EditorConfig 文件

  • 可选择删除项目 - 我们真的不需要它

Visual Studio 2019 - 从当前设置创建 EditorConfig 文件

在 Visual Studio 2019 年,您可以改为 create an EditorConfig file from your current settings。只需在 Text Editor > C# > Code Style > General 下的 Options 对话框中单击以下按钮:

如果您在文本编辑器中创建,您可能需要在文件顶部使用它,并根据需要进行调整:

# Remove the line below if you want to inherit .editorconfig settings from higher directories
root = true

# C# files
[*.cs]

在编辑器配置文件中禁用 IDE0044

要专门禁用 IDE0044,请在 .editorconfig 文件中添加或更改以下设置:

dotnet_style_readonly_field = false:none

(在Visual Studio2019中,可以在Options中将TextEditor-> C# -> Code Style-> General下的Prefer readonly选项设置为No,然后按上面详述的 Generate .editorconfig file from settings 按钮。

我想补充一下 Stephen 的 post,他的 .editorconfig 文件解决方案在没有指定我要应用规则的文件的情况下对我没有用。例如,假设我想对所有测试文件应用一个规则,并且我遵循以 "Tests.cs" 结尾的命名约定,我已经设法通过使用忽略了这些文件中的 CA1707 规则以下规则:

[*Tests.cs]
dotnet_diagnostics.CA1707.severity = none

关于我的回答的更多信息