2016-06-15 24 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行,因爲該行已被註釋掉,因此該行已死亡。這讓我旋轉了一段時間,然後才真正看着......。
相關問題