声纳msbuild从Jenkins运行:必须设置sonar.cs.fxcop.assembly

时间:2018-05-07 14:54:36

标签: c# sonarqube fxcop

我已经完成了之前关于这个主题的问题,但无论给出什么答案似乎都不适合我

我的设置是 - 安装了Microsoft Visual Studio社区2017 - SonarQube服务器版本5.6.2 - SonarQube MSbuild扫描仪:4.2.0.1214

运行时我得到的日志

传感器org.sonar.plugins.csharp.CSharpSensor(已完成)|时间= 2847ms 信息:传感器org.sonar.plugins.csharp.CSharpFxCopProvider $ CSharpFxCopSensor 信息:------------------------------------------------ ------------------------ 信息:执行失败 信息:------------------------------------------------ ------------------------ 信息:总时间:17.829s 信息:最终记忆:21M / 421M 信息:------------------------------------------------ ------------------------ 错误:SonarQube扫描程序执行期间出错 错误:必须设置属性“sonar.cs.fxcop.assembly”,并且必须构建项目才能执行FxCop规则。此属性可以由Analysis Bootstrapper for Visual Studio Projects插件自动设置,请参阅:http://docs.codehaus.org/x/TAA1Dg.If您希望跳过未构建项目的分析,设置属性“sonar.visualstudio.skipIfNotBuilt”。 < / p>

我不知道的是 - 我怎么知道在构建过程中启用了fxcop,如果这有意义并且有什么需要呢? - 当我看到的所有帖子倾向于说“如果使用声纳msbuild和visual studio不应该发生”,为什么我收到此错误消息

谢谢

1 个答案:

答案 0 :(得分:0)

支持FxCop的历史有点复杂,取决于您使用的SonarC#插件版本以及您正在运行的MSBuild扫描程序版本。 SonarC#plugin / Scanner for MSBuild中对FxCop的原生支持已被弃用一段时间,最终从version 4.0中的MSBuild扫描程序中删除。

我如何知道在构建过程中启用了fxcop?

检查SonarQube服务器上安装的插件。我的猜测是你要么安装了旧版本的SonarC#plugin(pre-v5.4),要么安装了社区FxCop插件。此外,如果查看项目的质量配置文件,您将看到存储库 FxCop /代码分析C#中的某些规则已启用。

由您决定是否要将FxCop规则作为构建的一部分运行。 SonarC#插件现在原生实现了所有最有用的FxCop规则,因此SonarSource推荐的方法就是将SonarC#插件用于新项目。

如果您使用的是扫描仪for MSBuild的v4或更高版本并且确实要上传FxCop问题,请检查您是否安装了最新版本的FxCop社区插件,并按照使用SonarQube扫描仪进行MSBuild的说明进行操作插件Readme的v4.0 部分。

如果您不想为此特定项目上载FxCop问题,则可以停用质量配置文件中的所有FxCop规则。如果您对查看任何项目的FxCop问题不感兴趣,可以卸载FxCop插件(如果已安装),并升级到较新版本的SonarC#插件(注意:SonarQube 5.6.2是一个相当旧的版本,所以你除非先升级SonarQube服务器,否则将无法安装最新版本的SonarC#插件。