.NET Core - MSBuild и project.json

.NET Core решил отказаться от project.json и вернуться к MSBuild и * .csproj. Это то, что уже произошло в только что выпущенном инструменте .Net Core 2.0 preview1. Это довольно обидно, потому что project.json был глотком свежего воздуха. Однако это понятно и имеет много преимуществ.

Давайте теперь обсудим преимущества, которые приносит изменение -

  • Это упростит переход существующих решений Visual Studio на .NET Core.

  • Это огромное изменение, и оно также позволит использовать существующие инвестиции в CI / RM на основе MSBuild.

  • Во время сборки в MSBuild мы можем думать об инкрементной компиляции, разрешении зависимостей времени сборки, управлении конфигурацией и т. Д.

  • Для своевременной поставки dotnet cli требуется много работы, потому что это уже не только ASP.NET Core, но и консольные приложения, приложения UWP и т. Д.

Ниже приведены изменения в MSBuild и * .csproj:

  • Файл Project.json (* .xproj) будет заменен MSBuild (* .csproj).

  • Функции project.json начнут объединяться обратно в файл * .csproj.

  • Пока не ясно, что они собираются делать со списком пакетов, но было упомянуто, что они могут сохранить его как json в nuget.json или слить с *.csproj.

  • Предположительно, этот переход должен быть плавным и потенциально автоматическим при использовании Visual Studio.

Преимущества MSBuild

  • MSBuild имеет открытый исходный код, доступен на GitHub и обязательно станет полностью кроссплатформенным.

  • MSBuild значительно упростит и урезает структуру *.csproj.

  • Microsoft также представляет новую систему проектов, которая позволит реализовать множество сценариев без необходимости использования Visual Studio, и подробности приведены на этом URL-адресе. https://github.com/dotnet/roslyn-project-system/.

  • Цель состоит в том, что даже при установке MSBuild работа со сборками и проектами в среде Visual Studio IDE будет такой же простой, как и вне ее.

MSBuild против project.json

Давайте теперь создадим новый консольный проект с инструментарием .NET Core preview2, выполнив следующую команду.

dotnet new -t console

Чтобы увидеть все файлы, созданные в этом проекте, запустите dir команда.

Вы видите, что созданы два файла, Program.cs и project.json файл.

Давайте теперь создадим консольное приложение с инструментарием .NET Core 2 preview1, выполнив следующую команду.

dotnet new console

Чтобы увидеть все файлы, созданные в этом проекте, запустите dirкоманда. Вы видите, что созданы три файла,Program.cs, NuGet.config и MSBuild.csproj вместо файла project.json.

Давайте теперь сравним project.json и MSBuild.csproj файлы рядом.

Слева у нас файл в формате json, а справа файл в формате XML. Вы можете видеть, что в файле project.json внутри раздела зависимостей естьnetcoreapp1.0в файле MSBuild.csproj вы увидите netcoreapp2.0.