web-dev-qa-db-fra.com

Exécution de SonarQube sur un projet/solution ASP.Net Core

SonarQube a un runner MSBuild mais .NET Core utilise dotnet.exe pour compiler et msbuild l'encapsule tout simplement. J'ai essayé d'utiliser le coureur MSBuild sans succès avec ma solution ASP.NET Core. SonarQube Scanner fonctionne très bien.

Des suggestions sur la façon dont je peux utiliser SonarQube avec .NET Core? L'analyse de code statique est ce que je recherche.

18
Psychoboy

.Csproj étant désormais le format de facto de . Net Core, le support SonarQube de ces solutions est livré avec le SonarQube Scanner for MSBuild v2.3 .

Il semble que .NET Core passe de project.json pour utiliser .csproj et MSBuild. Cela peut être disponible dans .NET Core 1.1 ou similaire. À ce moment-là, il est peut-être possible d’utiliser MSBuild pour créer des projets et laisser SonarQube les récupérer.

Voir: https://blogs.msdn.Microsoft.com/dotnet/2016/05/23/changes-to-project-json/

Que ce soit une bonne chose ou non reste à voir, je suppose.

Consultez également ce lien pour une solution de contournement possible permettant à MSBuild de construire des projets .NET Core entre-temps (je ne l’ai pas encore testé): https://docs.Microsoft.com/en-us/dotnet/articles/core/tutorials/target-dotnetcore-with-msbuild

Les outils .NET Core vont passer de project.json à des projets basés sur MSBuild. Nous prévoyons que la première version des outils .NET Core utilisant MSBuild sera livrée avec la prochaine version de Visual Studio. Cependant, il est possible d'utiliser les projets MSBuild pour .NET Core aujourd'hui, et cette page explique comment.

1
Jakob Möllås

J'ai été en mesure de faire fonctionner les versions .NET Core de la procédure sur leur site , avec deux choses que je voudrais souligner….

  • Lorsque vous exécutez les lignes de commande SonarQube.Scanner.MSBuild.exe, vous devez être dans le même répertoire que votre fichier de projet et le répertoire d'emplacement de la commande end doit correspondre au début.
  • Lorsque les instructions indiquent que vous devez modifier sonar.Host.url pour qu'il pointe vers votre serveur, vous devez décommenter toute la section du fichier avant de procéder à la modification. Sinon, vous venez d'insérer votre serveur dans une ligne sonar.Host.url qui est morte car elle est commentée. Cela m'a fait tourner pendant un moment avant que je regarde vraiment….
1
DDarwin