SonarQube MSBuild集成失败 - SonarQube 7与Scanner 4.0.2.892和VS2017

时间:2018-03-07 14:51:15

标签: c# msbuild sonarqube sonarqube-scan

我正在使用SonarQube 7.0和SonarQube Scanner for MSBuild 4.0.2.892并尝试按照these instructions在Windows上扫描我的.NET应用程序(ASP.NET Core)。以下三个命令是说明的一部分:

C:\SonarQube\Scanner\SonarQube.Scanner.MSBuild.exe begin /k:"org.sonarqube:sonarqube-scanner-msbuild" /n:"TradingPlatform" /v:"1.0"
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe" /t:Rebuild
C:\SonarQube\Scanner\SonarQube.Scanner.MSBuild.exe end

但是,虽然预处理在第一个命令上成功,而构建在第二个命令上完成,但第三个命令总是失败,如下所示:

====

MSBuild 4.0.2的SonarQube扫描仪 默认属性文件位于C:\ SonarQube \ Scanner \ SonarQube.Analysis.xml

从C:\ SonarQube \ Scanner \ SonarQube.Analysis.xml加载分析属性

开始后期处理。

SonarQube MSBuild集成失败:SonarQube无法收集有关您项目的必要信息。

可能的原因:

  1. 项目尚未建成 - 项目必须建立在开始和结束步骤之间
  2. 已使用不受支持的MSBuild版本来构建项目。目前支持MSBuild 14.0以上
  3. 开始,构建或结束步骤尚未从同一文件夹启动
  4. 生成声纳属性文件失败。无法完成SonarQube分析。

    退出代码1。

    ====

    有谁知道为什么会失败?原因1不可能是这种情况,因为我正在构建第2步中的项目。原因2似乎不太可能(但并非不可能),因为我正在使用MSBuild 15.原因3也不是这样的情况,因为我是从同一位置运行所有三个命令

1 个答案:

答案 0 :(得分:2)

其他可能的原因是:

  • 您的构建服务器正在使用本地系统帐户执行构建。尝试将构建用户更改为普通域或本地用户。
  • 您正在构建一个没有ProjectGuid属性(默认值)且不属于解决方案的.NET Core项目。要解决此问题,您需要执行以下操作之一:
    • 在csproj的第一个<ProjectGuid>XXXXX</ProjectGuid>中添加PropertyGroup元素,其中XXXXX是新生成的Guid。
    • 将项目添加到Visual Studio解决方案并构建sln文件而不是csproj

如果这没有帮助,请在扫描程序的/d:sonar.verbose=true命令中添加begin并将所有日志保存到文件中。从构建工作区中压缩日志和.sonarqube文件夹,然后在此处上传:https://www.dropbox.com/request/CszJAO1ZNXFVl1gwo5hA