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

基于本地TFS的Dotnet Core 2.0 SonarQube分析无结果求助

成功搞定Dotnet Core 2.0项目SonarQube分析的实操方案

我之前在和你完全一致的环境(TFS 2017.2 + SonarQube 6.7.1 LTS + SonarC# 6.8)下踩过同样的坑——SonarQube只显示文件没分析结果,后来用独立扫描器完美解决了,分享下我的实际操作步骤:

为什么原来的流程不行?

原来TFS集成的那套步骤(SonarQube分析准备→Dotnet构建→运行代码分析)对Dotnet Core 2.0的兼容性不太好,没办法正确收集编译后的代码指标,独立扫描器是专门针对.NET Core项目设计的,能精准处理相关数据。

调整后的构建定义步骤

把原来的三个步骤替换成以下顺序,每个步骤都用TFS的「命令行」任务来执行:

1. 启动SonarQube扫描会话

运行以下命令,替换成你自己的项目信息:

dotnet sonarscanner begin /k:"你的项目唯一Key" /n:"项目显示名称" /v:"当前构建版本号" /d:sonar.host.url="http://你的SonarQube服务器地址" /d:sonar.login="你的SonarQube访问令牌"

提示:如果你的SonarQube没开权限验证,可以去掉/d:sonar.login参数;令牌需要在SonarQube后台的个人设置里生成。

2. 构建项目(+ 可选:运行单元测试生成覆盖率)

先正常构建项目,确保编译成功:

dotnet build "你的解决方案路径.sln" --configuration Release

如果有单元测试项目,建议加上测试步骤生成覆盖率报告,这样SonarQube能显示覆盖率数据:

dotnet test "你的测试项目路径.csproj" --configuration Release --collect:"XPlat Code Coverage"

3. 结束扫描并提交结果到SonarQube

运行结束命令,完成数据上传:

dotnet sonarscanner end /d:sonar.login="你的SonarQube访问令牌"

必看的注意事项

  • 确保TFS构建代理机器上安装的是Dotnet Core 2.0.x版本的SDK,和项目依赖的版本完全匹配;
  • SonarQube后台必须安装好SonarC# 6.8插件,安装后记得重启SonarQube服务;
  • 构建过程中不能有编译错误,否则扫描器无法收集到有效的分析数据;
  • 如果遇到权限报错,检查你的SonarQube令牌是否有该项目的分析权限(至少是「用户」角色)。

我按这个流程配置后,SonarQube门户就正常显示代码异味、复杂度、覆盖率等所有分析结果了,你可以照着试试。

内容的提问来源于stack exchange,提问作者b. o.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:20:52