【发布时间】:2018-04-16 10:42:16
【问题描述】:
在通过 GitLab 的 CI 系统运行 sonarqube 分析时,在 SonarQube 扫描过程的最后发生了一个有趣的故障:
发生此过程的 Gitlab 从机具有以下配置:
- 操作系统:Windows Server 12 R2(64 位)
- 适用于 MSBuild 版本的声纳扫描仪:3.0.1.635
- MSBuild 版本:15(使用 Visual Studio 2017)
- SonarC# 版本:6.1.0.2359
使用的SonarQube服务器版本是6.4
Sonar 扫描仪似乎仍在引用文件的旧版本,该文件的行数比新版本多。早些时候,我通过删除 Gitlab runner 中建立的缓存解决了这个问题,但这一次,删除缓存没有任何效果。谷歌搜索这个错误并没有让我到任何地方(或者我的谷歌 Fu 很弱)。这似乎只是这个特定项目的问题,因为对其他 dotnet 核心项目的 SonarQube 分析在同一系统上运行良好。
任何指针/帮助/解释将不胜感激。
编辑:此问题是由文件编码(带有 BOM 的 UTF-8)引起的。将编码更改为 UTF-8 后,错误消失了。非常感谢 SonarSource 团队的 Valeri 为 pointing 提供了帮助
【问题讨论】:
-
请edit您的问题包括SonarQube实例上安装的SonarC#版本(管理>系统>更新中心)
-
这通常发生在您项目中的文件之一的编码“意外”时。最新版本的 SonarC# 应在日志中打印文件名。最好使用 UTF8 无 BOM 编码。
-
@Valeri-SonarSourceTeam:这行得通。该文件具有带有BOM编码的UTF-8,将其更改为UTF-8后,错误消失了。非常感谢!这是否包含在某处的官方文档中?或者你能在这里回答这个问题,以便我可以将其标记为这个问题的答案吗?
标签: c# msbuild sonarqube sonarqube-scan