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

SonarQube7.9.1通过Jenkins扫描.NET项目无法识别.cs、.sql文件如何解决

问题根因
  • 扫描工具选型错误:普通的sonar-scanner无法识别.NET项目结构、也无法联动Roslyn执行C#代码分析,是.cs文件无法被扫描的核心原因,日志中给出的两个警告也直接来源于该错误用法。
  • 配置限制了扫描语言:sonar-project.properties中指定了sonar.language=cs,仅允许扫描C#语言文件,.sql文件会被直接过滤,因此无法被识别。
  • 扫描流程缺失编译步骤:C#代码分析依赖编译阶段生成的产物,直接调用sonar-scanner没有执行项目编译,无法生成Roslyn分析报告,因此无法加载C#代码的分析结果。
解决步骤
  • 替换扫描工具:卸载当前使用的2.x版本普通sonar-scanner,下载适配SonarQube 7.9.1 LTS的SonarScanner for .NET 4.x版本(原SonarQube Scanner for MSBuild),部署到Jenkins执行节点。
  • 调整配置文件:删除sonar-project.properties中的sonar.language=cs配置项,让SonarQube自动识别项目中的多语言文件;若要明确指定扫描范围,可修改为sonar.language=cs,sql,同时确认SonarQube服务端已经安装SQL语言分析插件。
  • 修改Jenkins扫描流程:将原有的单步sonar-scanner调用改为.NET项目标准的三步扫描流程,示例脚本如下:
# 1. 初始化扫描参数
/path/to/SonarScanner.MSBuild.exe begin /k:"MSProject" /n:"MSProject" /v:"1.0" /d:sonar.sourceEncoding=UTF-8
# 2. 全量编译项目,可根据项目类型替换为dotnet build等编译命令
MSBuild.exe /t:Rebuild
# 3. 提交扫描结果
/path/to/SonarScanner.MSBuild.exe end

如果是Linux节点运行的.NET Core/.NET 5+项目,将上述命令替换为dotnet sonarscanner对应的指令即可。

  • 确认规则配置:登录SonarQube控制台检查对应项目的质量配置,确保C#、SQL对应的扫描规则已经开启,避免规则未启用导致扫描结果无展示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:24:05