我正在使用以下配置在构建服务器上构建和分析示例 C# 项目:

  • Jenkins 1.630;
  • SonarQube 5.3 的所有更新;
  • FxCop 10.0

  • 我在 Jenkins Job 中做了以下步骤:
  • 用于 MSBuild 的 SonarQube 扫描仪 - 开始分析
  • 使用 MSBuild (MSBuild 14) 构建 Visual Studio 项目或解决方案
  • 用于 MSBuild 的 SonarQube 扫描仪 - 结束分析

  • 如果在默认的 C# 配置文件中没有 FxCop 规则,则一切正常:项目在没有警告的情况下完成,然后进行分析。如果至少有一个 FxCop,则构建失败:
    V:\JenkinsWkFolder\Test\.sonarqube\bin\targets\SonarQube.Integration.targets(402,5): error : FxCop must be installed when some of its rules are enabled in the SonarQube quality profile. FxCop is included as part of Visual Studio. [V:\JenkinsWkFolder\Test\CSharpConsoleApp\CSharpConsoleApp.csproj]
    
    Done Building Project "V:\JenkinsWkFolder\Test\CSharpConsoleApp\CSharpConsoleApp.csproj" (Rebuild target(s)) -- FAILED.
    Done Building Project "V:\JenkinsWkFolder\Test\CITest.sln" (rebuild target(s)) -- FAILED.
    
    Build FAILED.
    
    "V:\JenkinsWkFolder\Test\CITest.sln" (rebuild target) (1) ->
    "V:\JenkinsWkFolder\Test\CSharpConsoleApp\CSharpConsoleApp.csproj" (Rebuild target) (2) ->
    (FailIfFxCopNotInstalled target) ->
      V:\JenkinsWkFolder\Test\.sonarqube\bin\targets\SonarQube.Integration.targets(402,5): error : FxCop must be installed when some of its rules are enabled in the SonarQube quality profile. FxCop is included as part of Visual Studio. [V:\JenkinsWkFolder\Test\CSharpConsoleApp\CSharpConsoleApp.csproj]
    
        0 Warning(s)
        1 Error(s)
    

    FxCop 安装在生成服务器上,而 Visual Studio 没有安装。 MsBuildSonarRunner 在哪里查找 FxCop 可执行文件?

    不知道您是否需要其他信息,请随时询问更多详细信息。
    提前致谢。
    此致,

    马里奥。

    最佳答案

    SonarQube 仅支持 MSBuild 14 和 FxCop 14(MSBuild 12/FxCop 12 将很快被弃用)。

    不幸的是,当与 VisualStudio 分开安装 MSBuild 工具时,FxCop 没有随 MSBuild 一起安装。要获得 FxCop 14,您必须安装 Visual Studio 2015(FxCop 10 是最后一个可以独立安装的版本)。
    在互联网上,您可以找到无需 VS2015 手动安装 FxCop 14 的方法,但这不是 Microsoft 官方程序。

    关于jenkins - FxCop 必须安装错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35159988/

    10-11 22:14