2016-06-15 19 views
17

SonarQube有一个MSBuild运行程序,但.NET Core使用dotnet.exe进行编译,而msbuild只是对其进行包装。我已经尝试过使用MSBuild运行器,但对我的ASP.NET Core解决方案没有成功。使用SonarQube扫描仪的作品。针对ASP.Net核心解决方案运行SonarQube

关于如何在.NET Core上使用SonarQube的建议?静态代码分析是我正在寻找的。

+0

鉴于我甚至没有设法使用Visual Studio来分析代码,我想我们只需要等待,并希望版本1.1时,将再次使用msbuild ... – peter

+0

截至今天,如果您使用带有xproj的msbuild构建,则只会将调用包装到dotnet构建中。这不允许SQ规则遵循它,并且当msbuild runner启动它时,就像没有为它发生构建一样。 – baywet

+0

挖掘它甚至不可能使用sonarlint来绑定asp.net核心项目并在VS中进行静态分析。我想他们必须实现一个新的跑步者+修改当前的sonarlint插件。 – baywet

回答

1

似乎.NET的核心是从project.json切换使用的.csproj的MSBuild。这可能在.NET Core 1.1或类似版本中可用。那时可以使用MSBuild来构建项目并让SonarQube选择它。

参见:https://blogs.msdn.microsoft.com/dotnet/2016/05/23/changes-to-project-json/

不管是好事还是不是仍有待观察,我猜。

也看到这个链接,一个可能的解决方法使用的MSBuild构建.NET核心项目在此期间(我没有测试它尚未):https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/target-dotnetcore-with-msbuild

的.NET核心工具将会从移动project.json到基于MSBuild的项目。我们期望使用MSBuild的.NET Core工具的第一个版本与下一版本的Visual Studio一起发布。但是,今天可以使用MSBuild for .NET Core项目,本页显示如何。

+0

似乎dot net core中最新的东西是非Visual Studio开发者的project.json,Visual Studio开发者的xproj + csproj如果你在做圆顶类项目(比如xamarin等)https:// github .com/aspnet/Home/issues/1451 – baywet

+0

链接到指示“特殊”项目使用csproj的文档https://docs.microsoft.com/zh-cn/dotnet/articles/core/tutorials/target-dotnetcore- with-msbuild – baywet

2

随着的.csproj现在作为de-facto format对.NET核心解决方案,SonarQube支持这样的解决方案自带的SonarQube Scanner for MSBuild v2.3

+0

文档中缺少一条重要信息。 ¿什么MSBuild版本被链接?对我而言,我的项目是使用MSBuild 15.0的.NET 4.6.1。我只需要使用新的PATH正确设置MSBuild。我就是这样。 –

0

我能够让.NET Core从the procedure on their site开始工作,有两件事情我想指出...... hellip ;.

  • 当您运行SonarQube.Scanner.MSBuild.exe命令行,你必须在相同的目录中的项目文件,并结束命令的位置目录必须启动相匹配。
  • 当说明声明您必须修改sonar.host.url指向您的服务器时,您必须在修改之前取消注释文件的整个部分。否则,您刚刚将服务器插入sonar.host.url行,因为该行已被注释掉,因此该行已死亡。这让我旋转了一段时间,然后才真正看着......。
相关问题