我正在Jenkins服务器上运行一个C#项目的SonarSource分析。日志显示了以下几条消息:
修复了无效的代码分析错误日志文件。请检查是否已安装VS 2015 Update 1(或更高版本)。
此Jenkins服务器上没有Visual Studio。我正在使用MSBuild(14.0.25123.0-这应该是VS 2015 Update 2的版本)和“SonarQube scanner for MSBuild 2.0”。SonarQube是5.3,Sonar C#插件5.1-RC3
Visual Studio 2015附带的Roslyn(Microsoft.CodeAnalysis.*)v1.0版本存在错误,这意味着编译器生成的json错误日志文件可能包含无效的json。该bug已在Visual Studio 2015 Update 1附带的Roslyn v1.1中修复。
MSBuild扫描程序具有特殊的案例代码来检测和修复无效的json,以便可以分析错误日志并上载文件。特殊情况代码非常具体,因为它只会尝试修复v1.0编译器生成的json文件(当错误日志头的productVersion=1.0.0和toolName=Microsoft(R)Visual C#编译器时)。
您看到的错误消息指的是Visual Studio 2015,因为这通常是用户获取编译器的方式,尽管真正的问题是使用的编译器版本。
您看到该消息的事实强烈表明您的构建正在使用Roslyn v1.0,这很奇怪,因为MSBuild 14.0.25123.0随Roslyn v1.2一起提供。检查正在生成的错误日志文件中的productVersion。
此外,尝试在启用诊断日志记录的情况下运行生成(例如,通过将 /v:diag 作为命令行参数传递给 MSBuild)。详细输出将包括正在使用的 Microsoft.Build.Tasks.CodeAnalysis.dll 的位置;检查 dll 的版本,以及同一目录中的 Microsoft.CodeAnalysis.dll 文件的版本。
你有没有试过通过官方Jira跟踪器提出问题?我认为这是获得有关C#SonarQube插件反馈的最有效的方式。