You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

dotnet jb cleanupcode生成冗余类型声明,环境配置不一致求排查规则

问题:dotnet jb cleanupcode 与 Rider/CI 代码风格规则不一致

我执行dotnet jb cleanupcode时,会将以下代码:

UserEntity[] users = [
    new() {
        Name = "Example User 1",
    },
    new() {
        Name = "Example User 2",
    },
];

修改为:

UserEntity[] users = [
    new UserEntity {
        Name = "Example User 1",
    },
    new UserEntity {
        Name = "Example User 2",
    },
];

但Rider和CI环境执行相同命令时,均建议保留第一种new()的写法。显然本地与CI/IDE的规则配置不一致,但我找不到导致冗余类型声明的对应规则,请问可能是.editorconfig或Roslyn中的哪些规则引发的?

可能的规则排查方向

JetBrains Rider 相关的 .editorconfig 规则

  • jetbrains_csharp_style_implicit_object_creation_when_type_is_apparent:该规则控制当目标类型可明确推断时,是否允许使用隐式的new()语法。若本地配置设为never,会强制要求显式写出类型(如new UserEntity());而CI/Rider环境若设为always,则会建议保留new()。
  • jetbrains_csharp_style_implicit_creation_in_array_initializer:专门针对数组初始化场景的隐式对象创建规则。如果本地将其设为never,会强制数组内的对象初始化必须显式声明类型,与你遇到的修改行为完全匹配。

Roslyn 分析器规则

  • IDE0090:规则名称为“Use 'new()' instead of 'new Type()'”,默认行为是建议在目标类型可推断时使用new()。若本地.editorconfig中该规则被禁用(如dotnet_diagnostic.IDE0090.severity = none),或被反向配置,可能导致cleanupcode工具不遵循隐式创建的建议,但这种情况较少见——因为JetBrains的cleanupcode工具通常优先遵循自身的规则集。

额外检查点

  • 确认本地与CI环境使用的.editorconfig文件是否一致,比如本地是否加载了子目录中的配置文件,覆盖了根目录的规则。
  • 检查dotnet jb cleanupcode命令是否指定了特定的配置文件路径,导致与Rider默认加载的配置不一致。

内容的提问来源于stack exchange,提问作者allinonemovie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 14:52:37