Sonarqube和dotnet核心在命令行上运行良好,但Jenkins不支持

Sonarqube和dotnet核心在命令行上运行良好,但Jenkins不支持,jenkins,msbuild,sonarqube,.net-core,Jenkins,Msbuild,Sonarqube,.net Core,我正试图在Jenkins的.NET Core 2.0解决方案上,在Windows上使用Sonarqube MsBuild启动Sonarqube 当我从Jenkins workspace执行以下脚本时,它工作正常: C:\SonarQube\bin\MSBuild.SonarQube.Runner.exe begin /k:XXXX.Campaigns /n:CI /v: /d:sonar.host.url=http://x.x.x.x:9000 /d:sonar.verbose=true /d:

我正试图在Jenkins的.NET Core 2.0解决方案上,在Windows上使用Sonarqube MsBuild启动Sonarqube

当我从Jenkins workspace执行以下脚本时,它工作正常:

C:\SonarQube\bin\MSBuild.SonarQube.Runner.exe begin /k:XXXX.Campaigns /n:CI /v: /d:sonar.host.url=http://x.x.x.x:9000 /d:sonar.verbose=true /d:sonar.projectBaseDir="C:\Program Files (x86)\Jenkins\workspace\CI"
dotnet clean
dotnet build
C:\SonarQube\bin\MSBuild.SonarQube.Runner.exe end
但当我从詹金斯那里执行同样的命令时,我得到了这样的信息:

SonarQube MSBuild集成失败:SonarQube为 无法收集有关项目的必需信息。 可能的原因:

  • 项目尚未生成-项目必须在中生成 在开始和结束步骤之间
  • 不支持的MSBuild版本 已用于构建项目。当前MSBuild 14.0及以上版本
  • 开始、构建或结束步骤尚未全部完成 从同一文件夹启动

  • 我使用Jenkins 2.46.2-MSBuild 15-Sonarqube 6.7和Sonar MSBuild 4.0.2.892。我尝试使用Jenkins构建步骤、命令步骤、命令步骤和脚本,但没有成功。在一个经典的.Net 4.5.2项目中,它可以工作。

    詹金斯是以本地系统用户的身份运行的。我把它改成一个普通的Windows用户,它成功了。dotnet build未使用Sonarqube专用目标。
    谢谢你@Valeri

    您好@Greg,您的SonarQube服务器上安装了什么版本的SonarC#?如果它早于6.7,.NET核心分析将失败,并出现相同的错误。请注意,SonarC#和SonarQube在一段时间内有相同的版本,但它们是不同的产品。嗨!我安装了声纳C#6.7.1(build 4347)。一个愚蠢的问题,但是-你的项目使用什么语言?C#或VB.NET?还有,可能是由于某种原因编译失败了吗?C#.NET核心。编译成功了。通过我的脚本,端到端的过程成功了。只有从Jenkins执行时才会失败。您是在Jenkins中构建解决方案,还是仅构建项目文件(csproj)?默认情况下,.NET核心项目在csproj中没有ProjectGuid属性,您需要为每个项目添加一个具有唯一Guid的属性(它是一个xml元素),或者只将项目添加到sln。通过这种方式,VisualStudio将在解决方案文件中分配GUID,但您必须构建解决方案,而不是项目。如果扫描程序找不到项目的ProjectGuid,则不会生成ProjectInfo.xml,并会因相同的错误而失败。仅供参考,扫描程序的4.1版将添加一条明确的消息,说明此情况,以便于诊断:请参阅