是否可以使用SonarQube运行.NetCore1.1项目的代码分析?

时间:2017-09-13 11:16:27

标签: c# sonarqube .net-core

我一直在尝试对几个.Net Core 1.1项目进行代码分析,但未能获得任何结果。

使用VS2015和project.json格式时,我成功发送了命令:

../声纳/工具/声纳扫描仪-2.8 / bin中/声纳扫描仪

并且声纳服务器显示项目和测试项目中的每个文件,但实际上没有进行任何分析:

  • 代码行= 0
  • 漏洞= 0
  • code smells = 0

将项目迁移到VS2017和csproj格式后,我甚至无法进行扫描。

在主项目文件夹中运行:

SonarQube.Scanner.MSBuild.exe begin /k:"Car.Enquiry-Presenter" /n:"Car.Enquiry-Presenter" / v:" 1.0" (这里没有问题)

msbuild Car.EnquiryPresenter.csproj

抛出错误:"错误MSB4066:属性"版本"元素中的元素无法识别。"

我在这里可以看到dotnet cli尚不支持 https://jira.sonarsource.com/browse/SONARMSBRU-310

但这篇文章表明它有可能: https://www.sonarsource.com/resources/product-news/news.html#2017-04-13-sonarqube-scanner-for-msbuild-2-3-released 支持.NET核心项目:SONARMSBRU-167'

但是我一直无法让它发挥作用。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

答案是肯定的(很好,我可以回答我自己的问题!)。

我刚刚使用v15的MSBuild工作了,但是我需要完全qlaul化exe的路径,否则它继续使用v14:

  • MSBuild.SonarQube.Runner.exe begin /key:"Car.Enquiry-Presenter" /name:"Car.Enquiry-Presenter" /版本:" 1.0"
  • " ../../../../ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ 15.0 \ Bin \ msbuild.exe"
  • MSBuild.SonarQube.Runner.exe结束

我还需要添加一个&#39; ProjectGuid&#39;节点到我的包含guid的csproj文件(我刚用https://www.guidgen.com/生成了<)>

注意:覆盖您在csproj文件中使用的工具集不会强制它使用v15。即:.... 因此,完全合格的道路。

您需要确保使用&#34; dotnet restore&#34;更新nuget软件包。在调用msbuild.exe之前。