我正在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"。SonarQobe是5.3,Sonar C#插件5.1-RC3
MSBuild扫描程序有特殊的大小写代码来检测和修复无效的json,这样就可以解析错误日志并上传文件。特殊情况代码非常具体,因为它只会尝试修复v1.0编译器生成的json文件(当错误日志头具有productVersion=1.0.0和toolName=Microsoft(R)Visual C#编译器时)。
您看到的错误消息指的是Visual Studio 2015,因为这通常是用户获取编译器的方式,尽管真正的问题是使用的编译器版本。
您看到的消息强烈表明您的构建使用的是Roslyn v1.0,这很奇怪,因为Roslyn 1.2附带了MSBuild 14.0.25123.0。检查正在生成的错误日志文件中的productVersion。
此外,尝试在打开诊断日志记录的情况下运行生成(例如,将/v:diag作为命令行参数传递给MSBuild)。详细输出将包括正在使用的Microsoft.Build.Tasks.CodeAnalysis.dll的位置;检查dll的版本,以及同一目录中Microsoft.CodeAnalysis.dll文件的版本。
您是否尝试通过Jira官方跟踪器提出问题?我认为这将是获得关于C#SonarQube插件的反馈的最有效的方式。