1. 背景与问题
Windows下配置 SonarQube 服务器(超详细有相关问题解决方法)
在 SonarQube 中为.NET项目的代码库创建项目并进行代码扫描,分析成功完成,且结果成功显示到SonarQube 服务器。然而,仔细观察发现,项目中的扫描结果显示仅识别了 CSS 和 HTML 文件的代码行数,C# 代码及相关问题未被识别。
这表明扫描范围或配置存在问题,导致主要代码未被正确分析。
2. 解决方案
2.1 初步排查
根据官方建议,删除项目重新导入,并将扫描范围设置为全目录(sonar.sources=.),以确保所有文件被包含在扫描范围内。
重新扫描后,可看到所有文件被包含在内。确认问题并非由 SonarQube 配置错误导致。
2.2 日志分析
进一步分析扫描日志,发现部分项目未被扫描器识别。经排查,确认问题根源在于 SonarQube 中默认不会对 TestProject 进行分析,导致相关 C# 代码未被扫描。
2025-02-26T01:56:35.6712810Z 09:56:35.670 DEBUG: Adding file type information (has MAIN 'false', has TEST 'false') for project 'WebApi' (project key ‘projectKeyId' , base dir 'C:\agents\_work\4\s\WebApi'). For debug info, see ProjectInfo.xml in 'C:\agents\_work\4\.sonarqube\out\4.Razor'. ...
2.3 项目依赖排查
排查解决方案下的项目包引用,发现存在多余引用,可能干扰了扫描过程。
使用 AI 辅助工具快速排查所有项目的包依赖,定位到具体的冗余引用。
2.4 结果验证
删除多余引用后,重新进行代码扫描。重新扫描后,C# 代码及相关问题被成功识别,扫描结果恢复正常。
3. 总结
本次问题的根本原因是项目依赖关系中存在多余引用,导致 SonarQube 无法正确扫描 C# 代码。通过调整扫描配置、分析日志以及清理项目依赖,最终解决了问题。