Учебники

.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 и т. Д.

Это сделает переход существующих решений 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.

Файл 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 имеет открытый исходный код и доступен на GitHub и обязательно станет полностью кроссплатформенным.

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

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

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

MSBuild vs project.json

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

dotnet new -t console 

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

Run Dir

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

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

dotnet new console 

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

Приставка

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

сравнить

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