0

我要求使用SonarQube来分析.NET项目。我安装了sonarqube-5.6.7,并且一切正常,但是当我使用MSBuild.SonarQube.Runner.exe创建.net解决方案时,问题就出现了。解决方案正在成功构建,但在向Sonar服务器发送报告时出现错误。SonarQube扫描仪抛出错误

请注意,我正在使用4.5.2框架的Visual Studio 2012项目,我不使用TFS甚至Jenkins。

  • SonarQube.Scanner.MSBuild.exe begin /k:"key" /n:"Project name" /v:"1.0" - 这一步似乎工作正常。

  • MSBuild.exe /t:Rebuild - 这一步似乎工作正常。

  • SonarQube.Scanner.MSBuild.exe end - 此步骤失败。失败的步骤

输出:

D:\...>SonarQube.Scanner.MSBuild.exe end 
SonarQube Scanner for MSBuild 3.1 
Default properties file was found at C:\Users\xxxx\Downloads\sonarqube-5.6.7 
\bin\SonarQube.Analysis.xml 

Loading analysis properties from C:\Users\xxx\Downloads\sonarqube-5.6.7\bin 
\SonarQube.Analysis.xml 

Post-processing started. 

The SonarQube MSBuild integration failed: SonarQube was unable to collect the re 
quired information about your projects. 

Possible causes: 

    1. The project has not been built - the project must be built in between the b 
egin and end steps 

    2. An unsupported version of MSBuild has been used to build the project. Curre 
ntly MSBuild 14.0 upwards are supported 

    3. The begin, build or end steps have not all been launched from the same fold 
er 

Generation of the sonar-properties file failed.  
Unable to complete SonarQube analysis.  
15:29:11.087 Creating a summary markdown file...  
15:29:11.1 Post-processing failed. Exit code: 1 

任何人都可以让我知道我错过了什么?

如下所示,我下载了“sonar-scanner-msbuild-2.3.2.573.zip”并试图重建Visual Studio 2012项目,该项目的目标框架版本是4.5.2,并且得到了错误。我试图用MSBuild 12的直接路径构建,也没有给MSBuild完整路径,但仍然得到错误。

D:\test\test>C:\Users\xxxx\Downloads\sonarqube-5.6.7\bin\SonarQube.Scanner.M 
SBuild.exe begin /k:"org.sonarqube:sonarqube-scanner-msbuild" /n:"Test Project" 
/v:"1.0" 

SonarQube Scanner for MSBuild 2.3.2 
Default properties file was found at C:\Users\xxxx\Downloads\sonarqube-5.6.7 
\bin\SonarQube.Analysis.xml 

Loading analysis properties from C:\Users\xxxx\Downloads\sonarqube-5.6.7\bin 
\SonarQube.Analysis.xml 

Pre-processing started. 

Preparing working directories... 

11:23:11.818 Updating build integration targets... 

11:23:11.863 Fetching analysis configuration settings... 

11:23:13.712 Generating rulesets... 

11:23:13.776 Provisioning analyzer assemblies for cs... 

11:23:13.778 Installing required Roslyn analyzers... 

11:23:13.992 Pre-processing succeeded. 

D:\test\test>MSBuild.exe /t:Rebuild 

Microsoft (R) Build Engine version 4.0.30319.34209 
[Microsoft .NET Framework, version 4.0.30319.34209] 
Copyright (C) Microsoft Corporation. All rights reserved. 

Building the projects in this solution one at a time. To enable parallel build, 
please add the "/m" switch. 

Build started 09/10/2017 11:23:29. 
Project "D:\test\test\test.sln" on node 1 (Rebuild target(s)). 

ValidateSolutionConfiguration: 
    Building solution configuration "Debug|Any CPU". 

Project "D:\test\test\test.sln" (1) is building "D:\test\test\test\test.csproj" 
(2) on node 1 (Rebuild target(s)). 

CoreClean: 
    Deleting file "D:\test\test\test\bin\test.dll". 
    Deleting file "D:\test\test\test\bin\test.pdb". 
    Deleting file "D:\test\test\test\obj\Debug\test.csprojResolveAssemblyReferenc 
    e.cache". 
    Deleting file "D:\test\test\test\obj\Debug\test.dll". 
    Deleting file "D:\test\test\test\obj\Debug\test.pdb". 
GenerateTargetFrameworkMonikerAttribute: 
Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output fi 
les are up-to-date with respect to the input files. 
CoreCompile: 
    C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Csc.exe /noconfig /nowarn:1701, 
    1702 /nostdlib+ /errorreport:prompt /warn:4 /define:DEBUG;TRACE /highentropyv 
    a+ /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framewor 
    k\.NETFramework\v4.5.2\Microsoft.CSharp.dll" /reference:"C:\Program Files (x8 
    6)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\mscorlib.dll 
    " /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework 
    \.NETFramework\v4.5.2\System.ComponentModel.DataAnnotations.dll" /reference:" 
    C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework 
    \v4.5.2\System.Configuration.dll" /reference:"C:\Program Files (x86)\Referenc 
    e Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Core.dll" /refer 
    ence:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFra 
    mework\v4.5.2\System.Data.DataSetExtensions.dll" /reference:"C:\Program Files 
    (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.D 
    ata.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Fr 
    amework\.NETFramework\v4.5.2\System.dll" /reference:"C:\Program Files (x86)\R 
    eference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Drawing.d 
    ll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framewo 
    rk\.NETFramework\v4.5.2\System.EnterpriseServices.dll" /reference:"C:\Program 
    Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\Sy 
    stem.Web.ApplicationServices.dll" /reference:"C:\Program Files (x86)\Referenc 
    e Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Web.dll" /refere 
    nce:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFram 
    ework\v4.5.2\System.Web.DynamicData.dll" /reference:"C:\Program Files (x86)\R 
    eference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Web.Entit 
    y.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Fram 
    ework\.NETFramework\v4.5.2\System.Web.Extensions.dll" /reference:"C:\Program 
    Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\Sys 
    tem.Web.Services.dll" /reference:"C:\Program Files (x86)\Reference Assemblies 
    \Microsoft\Framework\.NETFramework\v4.5.2\System.Xml.dll" /reference:"C:\Prog 
    ram Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2 
    \System.Xml.Linq.dll" /debug+ /debug:full /optimize- /out:obj\Debug\test.dll 
    /subsystemversion:6.00 /target:library /utf8output Properties\AssemblyInfo.cs 
    "C:\Users\xxxx\AppData\Local\Temp\.NETFramework,Version=v4.5.2.AssemblyA 
    ttributes.cs" 
CopyFilesToOutputDirectory: 
    Copying file from "obj\Debug\test.dll" to "bin\test.dll". 
    test -> D:\test\test\test\bin\test.dll 
    Copying file from "obj\Debug\test.pdb" to "bin\test.pdb". 
Done Building Project "D:\test\test\test\test.csproj" (Rebuild target(s)). 

Done Building Project "D:\test\test\test.sln" (Rebuild target(s)). 


Build succeeded. 
    0 Warning(s) 
    0 Error(s) 

Time Elapsed 00:00:00.71 

D:\test\test>C:\Users\xxxx\Downloads\sonarqube-5.6.7\bin\SonarQube.Scanner.M 
SBuild.exe end 

SonarQube Scanner for MSBuild 2.3.2 

Default properties file was found at C:\Users\xxxx\Downloads\sonarqube-5.6.7 
\bin\SonarQube.Analysis.xml 

Loading analysis properties from C:\Users\xxxx\Downloads\sonarqube-5.6.7\bin 
\SonarQube.Analysis.xml 

Post-processing started. 
The SonarQube MSBuild integration failed: SonarQube was unable to collect the re 
quired information about your projects. 

Possible causes: 
    1. The project has not been built - the project must be built in between the b 
egin and end steps 

    2. An unsupported version of MSBuild has been used to build the project. Curre 
ntly MSBuild 12.0 upwards are supported 

    3. The begin, build or end steps have not all been launched from the same fold 
er 

Generation of the sonar-properties file failed. Unable to complete SonarQube ana 
lysis. 

11:23:59.124 Creating a summary markdown file... 
11:23:59.14 Post-processing failed. Exit code: 1 

回答

0

Starting from version 3.0, SonarQube Scanner for MSBuild requires MSBuild 14 or later to work.

看来你有SonarQube扫描仪为的MSBuild 3.1, 但你的项目是使用Visual Studio 2012, 它使用的MSBuild 12

建立你需要:


使用旧版本(2.3.2),你有没有和构建步骤的一个问题:

"C:\Program Files (x86)\MSBuild\12.0\Bin\"MSBuild.exe /t:Rebuild 

这是需要在工作为了能够分析。 根据您的意见,问题就解决了,像这样:

我已通过更新C:\Program Files (x86)\MSBuild\12.0文件夹的目标解决了这个问题。我将目标文件夹从MSBuild 4.0复制到MSBuild 12.0,它工作。

+0

嗨,感谢您的回复。我无法将我的项目升级到Visual Studio 2015.您能否为我提供“MSBuild SonarQube扫描仪(3.0版以下)”的链接,我找不到可以用于Visual Studio 2012的链接。 –

+0

@SandeepRastogi you can在这里找到旧版本:https://github.com/SonarSource/sonar-scanner-msbuild/releases/ – janos

+0

嗨Janos,我找到了MSBuild版本,请在下面找到并指导我解决上述问题。
D:\ test \ test> MSBuild.exe/ver Microsoft(R)Build Engine版本4.0.30319.34209 [Microsoft .NET Framework,版本4.0.30319.34209] 版权所有(C)Microsoft Corporation。版权所有。 4.0.30319.34209 –