.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 .
Вы можете видеть, что созданы два файла, 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 .