早期版本不支持模板中的 C# 代码

从 .NET 6 开始,.NET SDK 随附的项目模板使用最新的 C# 语言功能。 以下语言功能在模板生成的代码中使用或在项目中默认启用:

以前的目标框架不支持某些最新的 C# 语言功能,因此你可能会在以下场景中遇到问题:

  • 当你使用 .NET 6 模板,然后将目标框架更改为以前的版本时。
  • 当你使用 .NET 6 模板,然后通过添加以前的目标框架版本来实现多目标时。

引入的版本

.NET SDK 6.0.100

旧行为

在以前的 .NET 版本中,可以将目标框架更改为以前的版本或添加其他版本,而无需更改项目模板创建的 C# 代码。

新行为

从 .NET 6 开始,更改或添加目标框架时,可能需要更改模板生成的 C# 代码,以避免使用不受支持的语言功能。 如果没有这些更改,项目将无法生成。 编译器错误和警告通常会指导你如何更改生成的代码,使其与新的目标框架兼容。

更改类别

此更改会影响源兼容性

更改原因

我们希望项目模板与最新的语言功能同步。 面向最新框架的主要使用场景使用最新的 C# 语言功能。

如果在重定向到较早的框架版本时遇到编译时错误和警告,请使用该信息指导你更改生成的代码,使其与所选的目标框架兼容。

为避免在面向旧框架时出现编译时错误,请遵循以下建议:

  • 避免将目标框架更改为以前的版本。 请在 Visual Studio 中或在命令行中使用 dotnet new <templateName> --framework <targetFramework> 创建项目期间选择所需的目标框架。
  • 创建多目标项目时,请在创建项目时选择最低目标框架版本。 创建项目后添加其他目标框架。

受影响的 API

不适用