.NET Core - MSBuild und project.json

Der .NET Core hat beschlossen, project.json zu löschen und zu MSBuild und * .csproj zurückzukehren. Dies ist bereits in den gerade veröffentlichten .Net Core 2.0 Preview1-Tools geschehen. Das ist ziemlich enttäuschend, denn das project.json war ein Hauch frischer Luft. Es ist jedoch verständlich und hat auch viele Vorteile.

Lassen Sie uns nun die Vorteile diskutieren, die die Änderung mit sich bringt -

  • Dies würde den Übergang der vorhandenen Visual Studio-Lösungen zu .NET Core unkompliziert machen.

  • Dies ist eine enorme Veränderung und ermöglicht auch die Nutzung bestehender Investitionen in CI / RM rund um MSBuild.

  • Während des Builds in MSBuild können wir an inkrementelle Kompilierung, das Auflösen von Buildtime-Abhängigkeiten, das Konfigurationsmanagement usw. denken.

  • Es ist viel Arbeit erforderlich, um dotnet cli pünktlich zu versenden, da es nicht mehr nur um ASP.NET Core geht, sondern auch um Konsolen-Apps, UWP-Apps usw.

Es folgen die Änderungen in MSBuild und * .csproj -

  • Die Datei Project.json (* .xproj) wird durch MSBuild (* .csproj) ersetzt.

  • Die Funktionen in project.json werden wieder in die * .csproj integriert.

  • Es ist noch nicht klar, was sie mit der Paketliste machen werden, aber es wurde erwähnt, dass sie es als json unter behalten könnten nuget.json oder verschmelzen Sie es in die *.csproj.

  • Angeblich sollte dieser Übergang reibungslos und möglicherweise automatisch erfolgen, wenn Visual Studio verwendet wird.

Vorteile von MSBuild

  • MSBuild ist Open Source und auf GitHub verfügbar. Es wird zwangsläufig vollständig plattformübergreifend.

  • MSBuild wird die Struktur des MSBuild dramatisch vereinfachen und kürzen *.csproj.

  • Microsoft führt außerdem ein neues Projektsystem ein, das viele Szenarien ohne Visual Studio ermöglicht. Die Details finden Sie in dieser URL https://github.com/dotnet/roslyn-project-system/.

  • Das Ziel ist, dass die Arbeit mit Builds und Projekten auch mit dem MSBuild-Setup in Visual Studio IDE so nahtlos ist wie außerhalb.

MSBuild vs project.json

Lassen Sie uns nun ein neues Konsolenprojekt mit dem .NET Core Preview2-Tool erstellen, indem Sie den folgenden Befehl ausführen.

dotnet new -t console

Führen Sie die Datei aus, um alle in diesem Projekt erstellten Dateien anzuzeigen dir Befehl.

Sie können sehen, dass zwei Dateien erstellt werden, Program.cs und project.json Datei.

Lassen Sie uns nun eine Konsolen-App mit dem .NET Core 2 Preview1-Tool erstellen, indem Sie den folgenden Befehl ausführen.

dotnet new console

Führen Sie die Datei aus, um alle in diesem Projekt erstellten Dateien anzuzeigen dirBefehl. Sie können sehen, dass drei Dateien erstellt werden:Program.cs, NuGet.config und MSBuild.csproj anstelle der Datei project.json.

Vergleichen wir jetzt project.json und MSBuild.csproj Dateien nebeneinander.

Links haben wir die Datei im JSON-Format, während rechts die Datei im XML-Format ist. Sie können dies in der Datei project.json im Abschnitt Abhängigkeiten sehennetcoreapp1.0Während Sie sich in der Datei MSBuild.csproj befinden, sehen Sie die netcoreapp2.0.