如何在新的MsBuild Sonar跑步者中使用FxCop分析?

时间:2015-08-21 14:10:08

标签: msbuild sonarqube fxcop sonar-runner sonarqube-msbuild-runner

我正在尝试从旧的Sonar运行器迁移到.NET项目中的新MsBuild Sonar运行器。

我遇到的最后一个问题是进行FxCop分析。如果Sonar中的质量配置文件包含任何FxCop规则,则会出现以下构建错误:

ERROR: Caused by: The property "sonar.cs.fxcop.assembly" must be set and the project must have been built to execute FxCop rules.
This property can be automatically set by the Analysis Bootstrapper for Visual Studio Projects plugin, see: http://docs.codehaus.org/x/TAA1Dg.
If you wish to skip the analysis of not built projects, set the property "sonar.visualstudio.skipIfNotBuilt".

我google了很多,发现了一些相同问题的相当古老的话题,但没有一个解决方案有效 我尝试添加sonar.visualstudio.enable="true"参数,但后来出现以下错误:

ERROR: Caused by: Do not use the Visual Studio bootstrapper and set the "sonar.modules" property at the same time.

还尝试添加/d:sonar.visualstudio.skipIfNotBuilt="true",但它没有帮助。

我做错了什么?如何参数化新的MsBuild声纳转轮以使FxCop分析工作?

这些是我正在执行的命令(我修改了文件名称路径):
1.声纳跑步者开始

MSBuild.SonarQube.Runner.exe begin /key:"MyProject" /name:"MyProject"
/version:"1" /d:sonar.host.url="http://mysonarhost/" /d:sonar.jdbc.dialect="mssql"
/d:sonar.jdbc.url="jdbc:jtds:sqlserver://mysonardb" /d:sonar.jdbc.username="sonar-user"
/d:sonar.jdbc.password="sonar-password" /d:sonar.resharper.cs.reportPath="../../../../resharperresults.xml"
/d:sonar.resharper.solutionFile="MySolution.sln"
/d:sonar.visualstudio.testProjectPattern=".*\.(UnitTests|IntegrationTests)"
/d:sonar.exclusions="obj/**" /d:sonar.dotnet.excludeGeneratedCode="true"
/d:sonar.cs.fxcop.fxCopCmdPath="..\Tools\FxCop.v12.0.21005.1\FxCopCmd.exe"
/d:sonar.visualstudio.solution="MySolution.sln" /d:sonar.dotnet.buildConfigurations="Release"
/d:sonar.language="cs" /d:sonar.sourceEncoding="UTF-8"
/d:sonar.cs.opencover.reportsPaths="..\CodeCoverage\MSTest.Coverage.MySolution.UnitTests.xml"
  1. 的MSBuild:
  2. MSBuild.exe targets.msbuild ...

    1. ReSharper分析:
    2. inspectcode.exe /o=resharperresults.xml MySolution.sln

      1. 赛跑者结束:
      2. MSBuild.SonarQube.Runner.exe end

1 个答案:

答案 0 :(得分:0)

我建议升级到新发布的MSBuild SonarQube Runner版本1.0.1,这将强制禁用Visual Studio Bootstrapper插件。迁移所有项目以使用MSBuild SonarQube Runner后,应从SonarQube服务器卸载Visual Studio Bootstrapper插件。

然后,所有SonarQube服务器和JDBC属性(如sonar.host.urlsonar.jdbc.url)最好通过SonarQube.Analysis.xml文件而不是通过命令行传递。

以下属性无用:sonar.visualstudio.testProjectPatternsonar.dotnet.excludeGeneratedCodesonar.cs.fxcop.fxCopCmdPathsonar.visualstudio.solutionsonar.dotnet.buildConfigurations

自从SonarQube版本4.2以来,SonarQube支持多语言项目,因此可以删除

sonar.language

对于OpenCover,请查看:http://docs.sonarqube.org/display/PLUG/C%23+Code+Coverage+Results+Import#C#CodeCoverageResultsImport-OpenCover

对于ReSharper,请访问:http://docs.sonarqube.org/display/PLUG/ReSharper+Plugin

本地支持FxCop,当您的质量配置文件中启用了FxCop规则时,它将在msbuild期间执行。