繁体   English   中英

SonarQube对C#文件的分析失败:对文件中不存在的行号的引用

[英]SonarQube analysis of C# file failing: References to a line number not present in the file

通过GitLab的CI系统运行声纳分析时,在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运行程序中建立的缓存解决了此问题,但是这次删除缓存没有效果。 谷歌搜索此错误并没有让我到任何地方(或者我的Google Fu很弱)。 这似乎仅与该特定项目有关,因为对其他dotnet核心项目的SonarQube分析在同一系统上运行良好。

任何指针/帮助/解释将不胜感激。

编辑:此问题是由文件的编码(带BOM的UTF-8)引起的。 将编码更改为UTF-8后,错误消失了。 非常感谢SonarSource团队的Valeri 指出了这一点

当项目中一个或多个文件的编码对SonarQube“意外”时,通常会发生此错误。 SonarC#的最新版本将打印破坏分析的文件名,您可以使用其他编码保存该文件,通常不带BOM的UTF8效果最佳。

这个问题相对少见,但是我认为您是对的,应该在我们的文档中占有一席之地。 我将创建一个页面,并使用链接更新答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM