You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins执行Sonar MSBuild报错:sonar.cs.fxcop.assembly必须设置

解决Sonar MSBuild报错sonar.cs.fxcop.assembly必须设置的问题

针对你在Jenkins中运行Sonar MSBuild时遇到的这个报错,结合你的环境(VS2017社区版、SonarQube 5.6.2、MSBuild Scanner 4.2.0.1214),我整理了几个针对性的解决方案,你可以逐一尝试:

  • 先排查版本兼容性问题
    SonarQube 5.6.2是比较老旧的LTS版本,而你使用的MSBuild Scanner 4.2.0是相对较新的版本,两者之间可能存在适配断层。官方兼容矩阵里,SonarQube 5.6.x对应的MSBuild Scanner版本应为2.x系列,4.x系列主要适配SonarQube 6.x及以上版本。如果可以调整版本,建议要么将SonarQube升级到6.x版本,要么把MSBuild Scanner降级到2.x版本(比如2.3.2),这可能从根源上解决兼容性导致的参数缺失问题。

  • 手动指定sonar.cs.fxcop.assembly参数
    如果不想调整版本,可以在Jenkins的SonarQube分析步骤中,找到「Additional Properties」(额外属性)输入框,添加指定程序集路径的参数:

    sonar.cs.fxcop.assembly=**/bin/Release/**/*.dll,**/bin/Release/**/*.exe
    

    这里的路径要匹配你项目的实际输出目录,如果是Debug配置就改成**/bin/Debug/**/*.dll。这个参数直接告诉SonarQube要扫描哪些程序集,补上后就能绕过报错。

  • 确认FxCop的配置与项目设置

    1. 在SonarQube服务器的管理后台,进入「Administration > Configuration > C#」,检查FxCop的安装路径是否正确指向VS2017的FxCop目录,比如:
      C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Team Tools\Static Analysis Tools\FxCop
      
    2. 确保你的项目启用了Code Analysis:打开项目的.csproj文件,添加以下配置(如果没有的话):
      <PropertyGroup>
        <RunCodeAnalysis>true</RunCodeAnalysis>
        <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
      </PropertyGroup>
      
      这样在Jenkins构建项目时,才会生成FxCop的分析报告,SonarQube才能正确读取相关数据。
  • 检查Jenkins的执行流程是否正确
    确保你的Jenkins任务执行顺序是:

    1. 执行SonarQube Scanner for MSBuild - Begin Analysis
    2. 用MSBuild命令重新构建项目(比如msbuild YourSolution.sln /p:Configuration=Release /t:Rebuild),必须完成构建才能生成程序集和分析报告
    3. 执行SonarQube Scanner for MSBuild - End Analysis
      跳过构建步骤会导致SonarQube找不到程序集,从而触发这个报错。
  • 临时禁用FxCop扫描(可选)
    如果你的项目不需要FxCop分析,可以直接禁用它来避免报错:在Jenkins的额外属性里添加sonar.cs.fxcop.enabled=false,或者在SonarQube服务器的插件管理中禁用FxCop插件。

内容的提问来源于stack exchange,提问作者jmet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:57:31