.NET Core 2.0 的新增功能What's new in .NET Core 2.0

本文内容

.NET Core 2.0 提供以下几个方面的增强功能和新功能:

工具Tooling

dotnet restore 隐式运行dotnet restore runs implicitly

在旧版 .NET Core 中,在使用 dotnet new 命令新建项目后,以及每当向项目添加新的依赖项时,都必须立即运行 dotnet restore 命令,以便下载依赖项。

备注

从 .NET Core 2.0 SDK 开始,无需运行 dotnet restore,因为它由所有需要还原的命令隐式运行,如 dotnet newdotnet builddotnet run在执行显式还原有意义的某些情况下,例如 Azure DevOps Services 中的持续集成生成中,或在需要显式控制还原发生时间的生成系统中,它仍然是有效的命令。

还可以将 —no-restore 开关传递到 newrunbuildpublishpacktest 命令,从而禁用自动调用 dotnet restore

重定目标到 .NET Core 2.0Retargeting to .NET Core 2.0

如果已安装 .NET Core 2.0 SDK,那么定目标到 .NET Core 1.x 的项目可以重定目标到 .NET Core 2.0。

若要重定目标到 .NET Core 2.0,请将 <TargetFramework> 元素(或 <TargetFrameworks> 元素,如果项目文件中有多个目标的话)值从 1.x 更改为 2.0,从而编辑项目文件:

  1. <PropertyGroup>
  2. <TargetFramework>netcoreapp2.0</TargetFramework>
  3. </PropertyGroup>

还可以用同样的方式,将 .NET Standard 库重定目标到 .NET Standard 2.0:

  1. <PropertyGroup>
  2. <TargetFramework>netstandard2.0</TargetFramework>
  3. </PropertyGroup>

若要详细了解如何将项目迁移到 .NET Core 2.0,请参阅从 ASP.NET Core 1.x 迁移到 ASP.NET Core 2.0

语言支持Language support

除了支持 C# 和 F# 外,.NET Core 2.0 还支持 Visual Basic。

Visual BasicVisual Basic

在版本 2.0 发布后,.NET Core 现在支持 Visual Basic 2017。可使用 Visual Basic 创建以下类型项目:

  • .NET Core 控制台应用程序
  • .NET Core 类库
  • .NET Standard 类库
  • .NET Core 单元测试项目
  • .NET Core xUnit 测试项目例如,若要创建 Visual Basic“Hello World”应用程序,请通过命令行按照以下步骤操作:

  • 打开控制台窗口,创建项目目录,并将它设为当前目录。

  • 输入命令 dotnet new console -lang vb

此命令创建文件扩展名为 .vbproj 的项目文件,以及名为 Program.vb 的 Visual Basic 源代码文件。此文件包含用于将字符串“Hello World!”写入控制台窗口的源代码。

  • 输入命令 dotnet run.NET Core CLI 自动编译并执行应用程序,在控制台窗口中显示文本字符串“Hello World!”。

支持 C# 7.1Support for C# 7.1

.NET Core 2.0 支持 C# 7.1,其中新增了大量功能,具体包括:

  • 可以使用 async 关键字标记 Main 方法(应用程序入口点)。
  • 推断的元组名称。
  • 默认表达式。

平台改进Platform improvements

.NET Core 2.0 包括许多功能,可便于用户更轻松地在支持的操作系统上安装并使用 .NET Core。

.NET Core for Linux 是一个实现代码.NET Core for Linux is a single implementation

.NET Core 2.0 提供一个 Linux 实现代码,适用于多个 Linux 发行版本。.NET Core 1.x 要求下载发行版本专属的 Linux 实现代码。

还可以开发定目标到 Linux 一个操作系统的应用程序。.NET Core 1.x 要求分别定目标到每个 Linux 发行版本。

支持 Apple 加密库Support for the Apple cryptographic libraries

macOS 上的 .NET Core 1.x 要求使用 OpenSSL 工具包的加密库。.NET Core 2.0 使用 Apple 加密库,不要求使用 OpenSSL,因此不再需要安装它。

API 更改和库支持API changes and library support

支持 .NET Standard 2.0Support for .NET Standard 2.0

.NET Standard 定义了一组版本化 API,这些 API 必须可用于符合相应 Standard 版本要求的 .NET 实现代码。.NET Standard 面向库开发者。旨在保证功能对每个 .NET 实现代码中定目标到 .NET Standard 版本的库可用。.NET Core 1.x 支持 .NET Standard 版本 1.6;.NET Core 2.0 支持最新版 .NET Core 2.0。有关详细信息,请参阅 .NET Standard

.NET Standard 2.0 比 .NET Standard 1.6 多包含 20,000 多个 API。此扩展的外围应用的大部分来自于,将 .NET Framework 和 Xamarin 的通用 API 合并到 .NET Standard。

.NET Standard 2.0 类库还可以引用 .NET Framework 类库,但前提是它们调用 .NET Standard 2.0 中的 API。不需要重新编译 .NET Framework 库。

有关自上一版本 (.NET Standard 1.6) 起添加到 .NET Standard 的 API 列表,请参阅 .NET Standard 2.0 与 1.6

扩展的外围应用Expanded surface area

与 .NET Core 1.1 相比,.NET Core 2.0 中的可用 API 总数增加了一倍以上。

借助 Windows 兼容包,从 .NET Framework 移植也简单了很多。

支持 .NET Framework 库Support for .NET Framework libraries

.NET Core 代码可以引用现有的 .NET Framework 库,包括现有的 NuGet 包。请注意,库必须使用 .NET Standard 中的 API。

Visual Studio 集成Visual Studio integration

Visual Studio 2017 版本 15.3 和(在某些情况下)Visual Studio for Mac 提供了大量面向 .NET Core 开发者的重大增强功能。

重定目标 .NET Core 应用程序和 .NET Standard 库Retargeting .NET Core apps and .NET Standard libraries

如果已安装 .NET Core 2.0 SDK,可以将 .NET Core 1.x 项目重定目标到 .NET Core 2.0,并将 .NET Standard 1.x 库重定目标到 .NET Standard 2.0。

若要在 Visual Studio 中重定目标项目,可以打开项目属性对话框的“应用程序” 选项卡,再将“目标框架” 值更改为“.NET Core 2.0” 或“.NET Standard 2.0” 。还可以通过右键单击项目并选择“编辑 *.csproj 文件” 选项进行更改。有关详细信息,请参阅本主题前面的工具部分。

.NET Core 的 Live Unit Testing 支持Live Unit Testing support for .NET Core

修改代码时,Live Unit Testing 在后台自动运行任何受影响的单元测试,并在 Visual Studio 环境中实时显示结果和代码覆盖率。.NET Core 2.0 现在支持 Live Unit Testing。以前,Live Unit Testing 仅适用于 .NET Framework 应用程序。

有关详细信息,请参阅结合使用 Live Unit Testing 和 Visual Studio 2017Live Unit Testing FAQ

更好地支持多个目标框架Better support for multiple target frameworks

若要为多个目标框架生成项目,现在可以从顶级菜单中选择目标平台。在下图中,名为 SCD1 的项目将目标定为 64 位 macOS X 10.11 (osx.10.11-x64) 和 64 位 Windows 10/Windows Server 2016 (win10-x64)。可以先选择目标框架,再选择项目按钮(在此示例中是为了要运行调试版本)。

显示生成项目时的目标框架选择的屏幕截图。

对 .NET Core SDK 的并行支持Side-by-side support for .NET Core SDKs

现在可以安装 .NET Core SDK,与 Visual Studio 互不影响。这样,单版本 Visual Studio 可以生成定目标到不同 .NET Core 版本的项目。以前,Visual Studio 和 .NET Core SDK 紧密结合在一起;特定版本的 SDK 附带了特定版本的 Visual Studio。

文档改进Documentation improvements

.NET 应用程序体系结构.NET Application Architecture

通过 .NET 应用程序体系结构,可以查看一系列电子图书,其中提供了有关如何使用 .NET 生成内容的指导、最佳做法和示例应用程序:

请参阅See also