我们的组织使用包含我们组织的 StyleCop.Analyzers 设置的规则集文件。这存在于源代码控制中,我们组织中所有解决方案中的所有项目都引用此文件。如果我编辑规则集(通过项目属性 → Code Analysis 选项卡),我会看到一条消息,提示我将规则集迁移到 EditorConfig 文件。我为什么要这样做,两者有什么区别?
我还注意到,在 Visual Studio 菜单 Tools → Options → Text Editor → C# → Code Style 中,有许多设置与许多 StyleCop.Analyzers 规则极其相似(例如,与使用“this”相关的几个设置,与 StyleCop SA1101“用此作为本地呼叫前缀”)。
这里还有一个按钮可以根据这些设置创建 EditorConfig 文件,那么这些设置如何与 StyleCop.Analyzer 设置共存,以及哪个设置优先?
此外,我们的 Azure DevOps 自动构建会在任何代码“违反”StyleCop 规则时报告警告。如果我们用 EditorConfig 文件替换规则集,构建还会这样做吗?
最后,有一个用于编辑 StyleCop.Analyzer 设置的 GUI(项目属性 → Code Analysis 选项卡 → Configure 按钮),而 EditorConfig 文件似乎是使用 Visual Studio 文本编辑器进行编辑的。鉴于需要管理数百条规则,您从哪里可以获得需要输入的规则的完整列表?这不是很乏味吗?
引文和图片取自Übersicht:
在 EditorConfig 文件中设置规则的严重性优先 超过规则集或解决方案资源管理器中设置的任何严重性。
当未给出 .editorconfig 文件或未在它。 根据我的经验,最好只选择一种配置方式。我还发现,只要任何 .ruleset 文件可用,以下描述的 .editorconfig 文件配置就不起作用/或编辑了 .ruleset。 通过灯泡配置规则
通过错误窗口配置规则
通过解决方案资源管理器
配置规则。您也可以在这里找到所有可用规则的列表。命令行工具尊重
.editorconfig 文件:
当您在命令行构建项目时,违反规则 如果满足以下条件,则会出现在构建输出中: 分析器作为 NuGet 包安装,而不是作为 VSIX 扩展安装。
项目代码中违反了一项或多项规则。 违反规则的严重性设置为警告(在这种情况下违规不会导致构建失败)或错误(在这种情况下违规会导致构建失败)。
:
- 规则集已经成为过去。迁移或坚持使用 EditorConfig 文件。
- 来自
- 将现有规则集文件转换为 EditorConfig 文件
有关规则集和 editorconfig 之间差异的更多信息,请参阅 Visual Studio 中代码分析的常见问题解答
:规则集和EditorConfig文件可以共存,并且都可以用于配置分析器。 EditorConfig 文件和规则集都允许您启用和禁用规则并设置其严重性。