我们的组织使用包含我们组织的 StyleCop.Analyzers 设置的规则集文件。该文件位于源代码管理中,并且我们组织中所有解决方案中的所有项目都引用此文件。如果编辑规则集(通过项目属性→ * 代码分析 * 选项卡),我看到一条消息,提示我将规则集迁移到EditorConfig文件。为什么我想这样做,这两者有什么区别呢?
我还注意到在Visual Studio菜单 * 工具 * → * 选项 * → * 文本编辑器 * → C# → * 代码样式 * 中,有许多设置与StyleCop.Analyzers的许多规则惊人地相似(例如,与使用“this”相关的几个设置,与StyleCop SA1101“用this作为本地调用的前缀”相比)。
这里还有一个按钮,用于根据这些设置创建EditorConfig文件,那么这些设置如何与 StyleCop.Analyzer 设置共存,哪个优先?
另外,我们的Azure DevOps自动构建会在任何代码“违反”StyleCop规则时报告警告。如果我们用EditorConfig文件替换规则集,构建还会这样做吗?
最后,还有一个用于编辑StyleCop.Analyzer设置的GUI(项目属性→ * 代码分析 * 选项卡→配置按钮),而EditorConfig文件似乎是使用Visual Studio文本编辑器编辑的。考虑到有数百条规则需要管理,你从哪里得到需要键入的规则的完整列表呢?这不是很乏味吗?
3条答案
按热度按时间wfsdck301#
引文和图片摘自 Übersicht:
在EditorConfig文件中设置规则的严重性优先于在规则集或解决方案资源管理器中设置的任何严重性。
当没有提供 .editorconfig 文件或没有在其中配置规则时,将使用Visual Studio中的设置(Visual Studio菜单 * 工具 * → * 选项 * → * 文本编辑器 * → C# → * 代码样式 *)。
根据我的经验,最好只选择一种配置方式。我还发现,只要有任何 .ruleset 文件可用,下面描述的 .editorconfig 文件配置就无法工作/或编辑 .ruleset。
通过灯泡配置规则
通过错误窗口配置规则
通过解决方案资源管理器配置规则。在这里也可以找到所有可用规则的列表。
命令行工具遵循 .editorconfig 文件:
在命令行生成项目时,如果满足以下条件,则生成输出中会显示规则冲突:
yx2lnoni2#
规则集已经是过去的事情了。迁移或坚持使用EditorConfig文件。
从 * 将现有规则集文件转换为EditorConfig文件 *:
从Visual Studio 2019版本16.5开始,规则集文件被弃用,取而代之的是EditorConfig文件...
gg58donl3#
有关ruleset和editorconfig之间差异的详细信息,请参阅 FAQ for code analysis in Visual Studio:
规则集和EditorConfig文件可以共存,并且都可以用于配置分析器。EditorConfig文件和规则集都允许您启用和禁用规则以及设置其严重性。
但是,EditorConfig文件还提供了配置规则的其他方法:
对于.NET代码质量分析器,EditorConfig文件允许您定义要分析的代码类型。对于Visual Studio中内置的.NET代码样式分析器,EditorConfig文件允许您定义代码库的首选代码样式。除了规则集和EditorConfig文件之外,某些分析器是通过使用标记为C#和VB编译器的附加文件的文本文件来配置的。