对规则集文件与 EditorConfig 文件感到困惑

问题描述 投票:0回答:3

我们的组织使用包含我们组织的 StyleCop.Analyzers 设置的规则集文件。这存在于源代码控制中,我们组织中所有解决方案中的所有项目都引用此文件。如果我编辑规则集(通过项目属性 → Code Analysis 选项卡),我会看到一条消息,提示我将规则集迁移到 EditorConfig 文件。我为什么要这样做,两者有什么区别?

我还注意到,在 Visual Studio 菜单 ToolsOptionsText EditorC#Code Style 中,有许多设置与许多 StyleCop.Analyzers 规则极其相似(例如,与使用“this”相关的几个设置,与 StyleCop SA1101“用此作为本地呼叫前缀”)。

这里还有一个按钮可以根据这些设置创建 EditorConfig 文件,那么这些设置如何与 StyleCop.Analyzer 设置共存,以及哪个设置优先?

此外,我们的 Azure DevOps 自动构建会在任何代码“违反”StyleCop 规则时报告警告。如果我们用 EditorConfig 文件替换规则集,构建还会这样做吗?

最后,有一个用于编辑 StyleCop.Analyzer 设置的 GUI(项目属性 → Code Analysis 选项卡 → Configure 按钮),而 EditorConfig 文件似乎是使用 Visual Studio 文本编辑器进行编辑的。鉴于需要管理数百条规则,您从哪里可以获得需要输入的规则的完整列表?这不是很乏味吗?

visual-studio visual-studio-2019 roslyn-code-analysis editorconfig
3个回答
7
投票

引文和图片取自Übersicht

在 EditorConfig 文件中设置规则的严重性优先 超过规则集或解决方案资源管理器中设置的任何严重性。

当未给出 .editorconfig 文件或未在它。 根据我的经验,最好只选择一种配置方式。我还发现,只要任何 .ruleset 文件可用,以下描述的 .editorconfig 文件配置就不起作用/或编辑了 .ruleset 通过灯泡配置规则

通过错误窗口配置规则

Configure rule via light bulb通过解决方案资源管理器

配置规则。您也可以在这里找到所有可用规则的列表。

Configure rule via error window

命令行工具尊重

.editorconfig 文件:

当您在命令行构建项目时,违反规则 如果满足以下条件,则会出现在构建输出中: Configure a rule via Solution Explorer 分析器作为 NuGet 包安装,而不是作为 VSIX 扩展安装。

项目代码中违反了一项或多项规则。 违反规则的严重性设置为警告(在这种情况下违规不会导致构建失败)或错误(在这种情况下违规会导致构建失败)。

  • 规则集已经成为过去。迁移或坚持使用 EditorConfig 文件。
  • 来自
  • 将现有规则集文件转换为 EditorConfig 文件

5
投票
从 Visual Studio 2019 版本 16.5 开始,规则集文件已弃用,取而代之的是 EditorConfig 文件...

有关规则集和 editorconfig 之间差异的更多信息,请参阅 Visual Studio 中代码分析的常见问题解答

规则集和EditorConfig文件可以共存,并且都可以用于配置分析器。 EditorConfig 文件和规则集都允许您启用和禁用规则并设置其严重性。

1
投票
但是,EditorConfig 文件也提供了配置规则的其他方法:

对于 .NET 代码质量分析器,EditorConfig 文件允许您定义要分析的代码类型。 对于 Visual Studio 中内置的 .NET 代码样式分析器,EditorConfig 文件允许您定义代码库的首选代码样式。 除了规则集和 EditorConfig 文件之外,一些分析器还通过使用标记为 C# 和 VB 编译器附加文件的文本文件进行配置。

© www.soinside.com 2019 - 2024. All rights reserved.