1

我们有一个包含 5 个项目的解决方案。

运行 MSBuild 运行器后,我们的声纳只包含对一个项目的分析,而不是完整的解决方案。

执行:

cd K:\sonarRoot

D:\BuildTools\MSBSonarQubeRunner-1.0.2\MSBuild.SonarQube.Runner.exe begin /k:"solutionKey" /n:"solutionName" /v:"solutionVersion" /d:sonar.resharper.cs.reportPath="K:\<pathToXml>\resharper.xml" /d:sonar.resharper.solutionFile="K:\<pathToSolution>\solution.sln"

C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe K:\<pathToSolution>\solution.sln /t:rebuild /p:Configuration=Release /p:TargetFrameworkVersion="v4.5.2" /verbosity:n /flp1:logfile=D:\ModuleBuild\Workspace\builderrors.txt;errorsonly;append=true    

D:\BuildTools\ReSharperCommandLineTools\inspectcode.exe "K:\<pathToSolution>\solution.sln" /o="K:\<pathToXml>\resharper.xml"    

D:\BuildTools\MSBSonarQubeRunner-1.0.2\MSBuild.SonarQube.Runner.exe end > D:\ModuleBuild\Workspace\sonar.out 2> D:\ModuleBuild\Workspace\sonar.err

这一切都运行良好,除了 Sonar 中只显示一个解决方案......对于解决方案中不在项目中的每个文件,我们在运行器输出中得到一行,如下所示:

12:14:43.513 信息 - 在第 262 行跳过 ReSharper 问题,其文件“{pathToSource}\ChangeListHelper.cs”不在 SonarQube 中。

不知何故,从 MSBuild 运行器生成的 sonar-project.properties 包含项目的 sonar.projectname 而不是解决方案。并且 sonar.projectBasedir 也设置为项目。

我们应该如何解决它,以便分析完整的解决方案?

4

1 回答 1

0

有没有可能你<pathToSolution>\Solution.sln包括在内*\test\*?默认配置忽略该正则表达式的项目。

如果,比方说,除了一个项目之外的所有项目都在 ' K:\myWork\thisSolution\test\ProjectAand ProjectBandProjectC 中,而最后一个项目是 K:\myWork\thisSolution\app\ProjectD AndProjectD是唯一被分析的项目,那么这就是原因。

有关此主题的其他 SO 讨论,请参阅 命令行中的 MSBuild SonarQube 运行器。

于 2016-02-02T17:26:24.790 回答