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

Visual Studio中.editorconfig指定的生成代码未被SonarLint忽略

解决SonarLint仍分析标记为生成代码的*_gen.cs文件问题

我之前也碰到过类似的SonarLint不识别.editorconfig里生成代码配置的情况,结合你的项目结构和配置内容,这里有几个实用的排查和解决方法:

1. 修正.editorconfig的glob匹配规则

你当前的[*_gen.cs]规则只会匹配根目录下的*_gen.cs文件,而子目录Module A、Module B里的同名文件根本没被这个规则覆盖到。你需要把规则改成递归匹配所有子目录的文件:

root = true
[**/*_gen.cs]
exclude = true
generated_code = true
[*.cs]
#Spaces and indents
indent_style=space
indent_size=4
# 其他配置...

**是递归通配符,能匹配任意深度的子目录,这样所有Module里的*_gen.cs都会被正确命中。

2. 确认SonarLint是否启用了.editorconfig支持

不同IDE的SonarLint插件需要手动开启读取.editorconfig的选项:

  • 在Visual Studio中:打开「工具」→「选项」→「SonarLint」→「General」,确保勾选「Read settings from editorconfig files」
  • 在JetBrains系列IDE(如Rider)中:进入「Settings」→「Tools」→「SonarLint」→「General」,确认「Use EditorConfig settings」处于启用状态

如果这个选项没开,SonarLint会完全忽略.editorconfig里的配置。

3. 直接在csproj中标记生成代码

如果.editorconfig的配置还是不生效,可以绕过它,直接在每个Module的.csproj文件里明确标记生成文件:

<ItemGroup>
  <!-- 匹配当前Module下所有*_gen.cs文件 -->
  <Compile Include="*_gen.cs">
    <IsGeneratedCode>true</IsGeneratedCode>
  </Compile>
</ItemGroup>

这种方式优先级更高,SonarLint会直接识别这些文件为生成代码,跳过分析。

4. 清理SonarLint缓存

有时候旧的缓存会导致配置更新不生效,你可以尝试:

  • 关闭当前解决方案
  • 删除解决方案根目录下的.vs隐藏文件夹(如果是Visual Studio)
  • 重新打开解决方案,让SonarLint重新加载配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 08:17:39