.NET Core - MSBuild i project.json
NET Core zdecydował się porzucić project.json i wrócić do MSBuild i * .csproj. To jest coś, co już się wydarzyło w właśnie wydanym narzędziu .Net Core 2.0 w wersji zapoznawczej1. To dość rozczarowujące, ponieważ project.json był powiewem świeżego powietrza. Jest to jednak zrozumiałe i ma również wiele zalet.
Omówmy teraz korzyści, jakie przynosi ta zmiana -
Ułatwiłoby to przejście istniejących rozwiązań Visual Studio na platformę .NET Core.
Jest to ogromna zmiana, która umożliwi również wykorzystanie istniejących inwestycji w CI / RM opartych na MSBuild.
Podczas kompilacji w programie MSBuild możemy myśleć o kompilacji przyrostowej, rozwiązywaniu zależności czasu kompilacji, zarządzaniu konfiguracją itp.
Dostarczenie cli dotnet na czas wymaga dużo pracy, ponieważ nie dotyczy to już tylko ASP.NET Core, ale także aplikacji konsolowych, aplikacji UWP itp.
Poniżej przedstawiono zmiany w programie MSBuild i * .csproj -
Plik Project.json (* .xproj) zostanie zastąpiony przez MSBuild (* .csproj).
Funkcje w project.json zaczną być ponownie scalane z plikiem * .csproj.
Nie jest jeszcze jasne, co zamierzają zrobić z listą pakietów, ale wspomniano, że mogą zachować ją jako json pod nuget.json lub scal go w *.csproj.
Podobno to przejście powinno być płynne i potencjalnie automatyczne, jeśli używasz programu Visual Studio.
Zalety MSBuild
MSBuild jest oprogramowaniem typu open source i jest dostępne w serwisie GitHub i jest w pełni wieloplatformowe.
MSBuild radykalnie uprości i przycina strukturę *.csproj.
Microsoft wprowadza również nowy system projektów, który umożliwi wiele scenariuszy bez konieczności używania Visual Studio, a szczegóły są podane w tym adresie URL https://github.com/dotnet/roslyn-project-system/.
Celem jest, aby nawet przy konfiguracji MSBuild praca z kompilacjami i projektami w środowisku IDE programu Visual Studio była równie płynna, jak poza nim.
MSBuild vs project.json
Utwórzmy teraz nowy projekt konsoli z narzędziami .NET Core w wersji zapoznawczej2, wykonując następujące polecenie.
dotnet new -t console
Aby zobaczyć wszystkie pliki utworzone w tym projekcie, uruchom dir Komenda.
Widać, że tworzone są dwa pliki, Program.cs i project.json plik.
Utwórzmy teraz aplikację konsolową z narzędziami .NET Core 2 w wersji zapoznawczej1, wykonując następujące polecenie.
dotnet new console
Aby zobaczyć wszystkie pliki utworzone w tym projekcie, uruchom dirKomenda. Możesz zobaczyć, że powstały trzy pliki,Program.cs, NuGet.config i MSBuild.csproj zamiast pliku project.json.
Porównajmy teraz project.json i MSBuild.csproj pliki obok siebie.
Po lewej mamy plik w formacie json, a po prawej plik w formacie XML. Możesz zobaczyć, że w pliku project.json, w sekcji zależności, jestnetcoreapp1.0, podczas gdy w pliku MSBuild.csproj zobaczysz plik netcoreapp2.0.