dotnet_diagnostics 和 dotnet_style_、csharp_ 等下的等效规则有什么区别?

What's the difference between dotnet_diagnostics and equivalent rules under dotnet_style_, csharp_ etc.?

例如,在 .editorconfig 中,我可以使用以下两种方式要求字段为只读:

# IDE0044: Make field readonly
dotnet_diagnostic.IDE0044.severity = warning

dotnet_style_readonly_field = true:warning

两者都会出现在编辑器中,都会导致问题在 运行 dotnet format 上得到解决。这两个选项有什么区别?

编译器不知道 option = value:severity 语法,例如:

dotnet_style_readonly_field = true:warning

因此,如果您使用它,构建将生成 warnings/errors 仅用于 IDE 实时分析。但是如果你想在构建时强制执行 code-style,你需要使用 dotnet_diagnostic.RuleId.severity = severity 语法。