SonarQube扫描仪未针对MSBuild分析C#代码

时间:2018-09-04 12:17:47

标签: c# jenkins msbuild sonarqube sonarqube-scan

SonarQube计算我们项目中的c#行,计算覆盖率和重复项,但不检查问题或代码异味。 例如,以下愚蠢的代码不会产生任何代码异味:

public static bool Silly()
        {
            int neverUsed = 0;
            var foo = false;
            foo = !!foo;
            var bar = "toto";
            bool isTrue = true;
            int one = 0;
            if (isTrue)
            {
                one = 1;
            }
            System.Console.WriteLine(one);
            if (bar != null & bar.Substring(0, 2).Equals("to"))
                return true;
            return false;
        }

我们检查了c#质量配置文件(香草声纳方式)。没有文件排除。该分析与javascript代码配合良好。

我们正在使用:

  • SonarQube 6.7.5
  • 詹金斯2.74
  • Jenkins 2.6.1的SonarQube插件
  • 用于MSBuild 3.0.2的SonarQube扫描仪
  • MSBuild 14
  • SonarC#6.2

我们关注了:

这是我的詹金斯版本的配置(香草):

enter image description here

在构建日志中,我们发现:

  • “ RunCodeAnalysis”注释在“ TargetTarget”之前没有属性à“ D:\ Program Files(x86)\ Jenkins \ workspace \ NouveauProjet.sonarqube \ bin \ targets \ SonarQube.Integration.targets(356,11)”不存在pas dans le projet和seraignorée。
  • 警告:无法修复代码分析ErrorLog文件。请检查是否已安装VS 2015 Update 1(或更高版本)。

1 个答案:

答案 0 :(得分:0)

第一个警告与FxCop有关,很可能意味着您的构建计算机上未安装FxCop。它不会影响Roslyn分析。

第二个警告是相关的。 Roslyn分析报告被编写为json文件。但是,Roslyn的v1在某些情况下会生成无效的json。扫描程序会检查文件是否为有效的json,如果没有,则尝试对其进行纠正。

此警告表明正在执行分析,但正在生成扫描仪无法修复的无效文件。检查生成的json报告实际上是有效的json。 MSBuild 15具有更新的Roslyn版本,没有此问题。

[更新] MSBuild 15随Visual Studio 2017的构建工具一起安装,可用here