.NET Core - MSBuild et project.json

Le .NET Core a décidé de supprimer project.json et de revenir à MSBuild et * .csproj. C'est quelque chose qui s'est déjà produit dans l'outillage .Net Core 2.0 preview1 qui vient d'être publié. C'est assez décevant, car le project.json était une bouffée d'air frais. Cependant, il est compréhensible et présente également de nombreux avantages.

Parlons maintenant des avantages que le changement apporte -

  • Cela faciliterait la transition des solutions Visual Studio existantes vers .NET Core.

  • C'est un changement énorme et cela permettra également de tirer parti des investissements existants dans CI / RM autour de MSBuild.

  • Lors de la construction dans MSBuild, nous pouvons penser à la compilation incrémentielle, à la résolution des dépendances de compilation, à la gestion de la configuration, etc.

  • Beaucoup de travail est nécessaire pour expédier dotnet cli à temps, car il ne s'agit plus seulement d'ASP.NET Core, mais aussi d'applications de console, d'applications UWP, etc.

Voici les modifications apportées à MSBuild et * .csproj -

  • Le fichier Project.json (* .xproj) sera remplacé par MSBuild (* .csproj).

  • Les fonctionnalités de project.json commenceront à être fusionnées dans le fichier * .csproj.

  • On ne sait pas encore ce qu'ils vont faire à propos de la liste des paquets, mais il a été mentionné qu'ils pourraient la conserver en json sous nuget.json ou fusionnez-le dans le *.csproj.

  • On suppose que cette transition devrait être fluide et potentiellement automatique si vous utilisez Visual Studio.

Avantages de MSBuild

  • MSBuild est open source et disponible sur GitHub et est appelé à devenir entièrement multi-plateforme.

  • MSBuild simplifiera et réduira considérablement la structure du *.csproj.

  • Microsoft introduit également un nouveau système de projet qui permettra de nombreux scénarios sans avoir besoin de Visual Studio et les détails sont donnés sur cette URL https://github.com/dotnet/roslyn-project-system/.

  • L'objectif est que même avec la configuration MSBuild, l'utilisation des builds et des projets sera aussi transparente dans Visual Studio IDE qu'en dehors de celui-ci.

MSBuild contre project.json

Créons maintenant un nouveau projet de console avec les outils .NET Core preview2 en exécutant la commande suivante.

dotnet new -t console

Pour voir tous les fichiers créés dans ce projet, exécutez le dir commander.

Vous pouvez voir que deux fichiers sont créés, Program.cs et project.json fichier.

Créons maintenant une application console avec les outils .NET Core 2 preview1 en exécutant la commande suivante.

dotnet new console

Pour voir tous les fichiers créés dans ce projet, exécutez le dircommander. Vous pouvez voir que trois fichiers sont créés,Program.cs, NuGet.config et MSBuild.csproj au lieu du fichier project.json.

Comparons maintenant project.json et MSBuild.csproj fichiers côte à côte.

À gauche, nous avons le fichier au format json tandis qu'à droite, le fichier est au format XML. Vous pouvez voir que dans le fichier project.json, dans la section des dépendances, il y anetcoreapp1.0, tandis que dans le fichier MSBuild.csproj, vous verrez le netcoreapp2.0.