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

升级SonarQube扩展后VS2015环境下无coveragexml文件问题

解决SonarQube扩展v4.1在VS2015 TFS代理上无法生成codecoverage.xml的问题

结合你给出的环境(TFS 2017 Update-2、VS2015、VSTS Task 3.2.0、SonarQube 5.6.6 LTS)和症状,我来分享下实际排查和解决的思路:

问题根源

SonarQube Scanner for MSBuild v4.x对VS版本的代码覆盖率工具逻辑做了调整,VS2017+使用的是新版覆盖率收集机制,而VS2015依赖的旧版CodeCoverage.exe工具没有被v4.1的扩展正确适配,导致在End Analysis阶段找不到生成的codecoverage.xml文件。

可行解决方案

1. 完善临时参数+手动转换覆盖率文件

你提到的添加/d:sonar.cs.v...参数是正确方向,但需要配合完整流程确保文件生成:

  • 在Scanner for MSBuild - Begin Analysis任务的「Additional Settings」中,明确指定覆盖率报告路径:
    /d:sonar.cs.vscoveragexml.reportsPaths=$(Agent.TempDirectory)\**\*.coveragexml
    
  • 在前置的Visual Studio Test任务中,启用代码覆盖率并指定输出目录:
    在「Arguments」里添加:
    /EnableCodeCoverage /logger:trx /resultsDirectory:$(Agent.TempDirectory)
    
  • 添加一个PowerShell脚本任务(放在测试任务之后,Sonar End任务之前),将VS2015生成的.coverage文件转换为SonarQube识别的.coveragexml:
    & "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Dynamic Code Coverage Tools\CodeCoverage.exe" analyze /output:$(Agent.TempDirectory)\codecoverage.xml $(Agent.TempDirectory)\*.coverage
    

2. 检查VS2015组件完整性

确认TFS代理所在机器的VS2015是否安装了Dynamic Code Coverage Tools:

  • 打开控制面板 → 程序和功能 → 找到Visual Studio 2015 → 点击「更改」
  • 在安装界面中,展开「Team Foundation Server Build Tools」,勾选「Dynamic Code Coverage Tools」并完成安装

3. 版本回退(可选)

如果你的构建环境以VS2015为主,且不想修改流程,可以暂时回退到SonarQube扩展v4.0.2,该版本对VS2015的覆盖率工具兼容性更好,直到后续版本修复该问题。

注意事项

  • 确保TFS代理服务账号有访问VS2015工具目录和临时目录的权限
  • 构建过程中不要清理$(Agent.TempDirectory),避免覆盖率文件被提前删除

内容的提问来源于stack exchange,提问作者PGGM-IT4IT

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:40:06