从 .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
无