在 sonarqube 网站上,新的 C# 插件文档声明“对 fxcop 的本机支持”
但是没有解释如何让 fxcop 运行。它不能开箱即用。
我到目前为止所做的工作:
- 安装 Sonarqube 5.1
- 使用 msbuild.sonarqube.runner
- sonarqube C#,xml,js 分析就像一个魅力。
不起作用的是使用 fxcop 规则。当我启用 1 条规则时,我让跑步者给出以下例外:
错误:Sonar runner 执行期间出错 org.sonar.runner.impl.RunnerException:无法在 org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLaunc her.java:91) 处执行 Sonar .BatchLauncher$1.run(BatchLauncher.java:75) at java.security.AccessController.doPrivileged(Native Method) at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69) at org.sonar.runner。 impl.BatchLauncher.execute(BatchLauncher.java:50) 在 org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102
at org.sonar.runner.api.Runner.execute(Runner.java:100) at org.sonar.runner.Main.executeTask(Main.java:70) at org.sonar.runner.Main.execute(Main.java:59) at org.sonar.runner.Main.main(Main.java:53) Caused by: java.lang.IllegalArgumentException: The property "sonar.cs.fxcop.a
ssembly" 必须设置,并且项目必须已构建以执行 FxCop 规则。此属性可以由 Visual Studio Projects 插件的 Analysis Bootstrapper 自动设置,请参阅: http://docs.codehaus.org/x/TAA1Dg。如果您希望跳过未构建项目的分析,请设置属性“sonar.visu alstudio.skipIfNotBuilt”。
到目前为止我尝试了什么:
- 遵循提供的 docs.codehaus.org/x/TAA1Dg 链接,但这是一个死链接。它指出“所有 Codehaus 服务均已终止”。
- 将 sonar.cs.fxcop.assembly 属性添加到 sonarqube.analysis.xml 但这不会改变任何错误。
- 将 sonar.cs.fxcop.installdirectory 属性添加到 sonarqube.analysis.xml 文件中。这会将错误消息更改为:
原因:java.lang.IllegalArgumentException:找不到属性“sonar.cs.fxcop”提供的程序集“C:\p rojects\mercurial\ccvs.sonarqube\bin\sonar-runner\bin\“FxCopCmd.exe” 。部件”。
- 但我无法将 fxcop 安装复制到此文件夹。我也未能影响重定向到我的 fxcop 安装的路径,该安装带有 vs2013(C:\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\Static Analysis Tools\FxCop\FxCopCmd.exe)
- 另一件事是 .sln 文件旁边的 sonar-project.properties 文件没有被这个新的 msbuild 声纳运行器拾取,这就是我编辑 xml 文件的原因。
简而言之,将不胜感激如何让 fxcop 与 sonarqube 5.1 和 sonarqube 网站上的 msbuild sonarrunner 一起工作的指南的分步说明。