- .NET Core 教程
- .NET Core - 主页
- .NET Core - 概述
- .NET Core - 先决条件
- .NET Core - 环境设置
- .NET Core - 入门
- .NET Core - 数值
- .NET Core - 垃圾收集
- .NET Core - 代码执行
- .NET Core - 模块化
- .NET Core - 项目文件
- .NET Core - 包参考
- 使用.NET Core创建UWP应用程序
- .NET 核心 - MSBuild
- .NET Core - 元包
- Windows 运行时和扩展 SDK
- 创建.NET标准库
- .NET Core - 可移植类库
- 添加对库的引用
- 共享 .NET Core 库
- 创建 Xamarin.Forms 项目
- .NET Core - PCL 故障排除
- .NET Core - 创建测试项目
- 在 Visual Studio 中运行测试
- .NET Core - 测试库
- 托管可扩展性框架
- .NET 核心 - SDK
- .NET Core - MSBuild 和 project.json
- 恢复和构建以及 MSBuild
- .NET Core - 迁移
- .NET Core 有用资源
- .NET Core - 快速指南
- .NET Core - 有用的资源
- .NET Core - 讨论
.NET Core - MSBuild 和 project.json
.NET Core 决定放弃 project.json 并返回到 MSBuild 和 *.csproj。这是刚刚发布的 .Net Core 2.0 Preview1 工具中已经发生的事情。这相当令人失望,因为 project.json 让人耳目一新。然而,这是可以理解的,并且也有很多优点。
现在让我们讨论这一变化带来的优势 -
这将使现有 Visual Studio 解决方案向 .NET Core 的过渡变得简单。
这是一个巨大的变化,它还将能够利用基于 MSBuild 的 CI/RM 的现有投资。
在MSBuild中构建过程中,我们可以想到增量编译、解决构建时依赖、配置管理等。
要按时发布 dotnet cli 需要做大量工作,因为它不再仅仅涉及 ASP.NET Core,还涉及控制台应用程序、UWP 应用程序等。
以下是 MSBuild 和 *.csproj 中的更改 -
Project.json 文件 (*.xproj) 将替换为 MSBuild (*.csproj)。
project.json 中的功能将开始合并回 *.csproj。
目前尚不清楚他们将如何处理包列表,但有人提到他们可能会将其保留为nuget.json下的 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 文件的dependency 部分中,有netcoreapp1.0,而在MSBuild.csproj 文件中,您将看到netcoreapp2.0。