升级现有的.NET Framework 项目到 .NET 6

首先,想直接右键属性把target framework 从 .NET Framework 4.x 选择到 到 .NET 6,是没有这个选项的。

需要借助.NET 的命令行工具。

安装 upgrade-assistant 工具 ​​https://github.com/dotnet/upgrade-assistant​

dotnet tool install -g upgrade-assistant

升级具体项目

upgrade-assistant upgrade xxx.sln

upgrade-assistant upgrade xxx.proj

升级后如果立即重新编译,可能遇到的问题是

  • 有些带蓝色标记的工程会被 skip

解决办法是:

  • 删除这个工程的obj和bin文件夹,重新编译
  • 从solution中移除这个工程,重新添加回来,记得添加其他工程对它的依赖关系

可能需要手动修改的选项:

  • 双击项目文件,或者手动打开.proj文件,TargetFramework 需要改成 .net6.0,如果适配Windows 7以上,需要改成.net6.0-windows,如果需要使用uwp的API,需要改成net6.0-windows10.0.19041.0,如果需要使用Windows 11的API,需要改成net6.0-windows10.0.22000.0

​https://docs.microsoft.com/en-us/aspnet/core/migration/50-to-60?view=aspnetcore-6.0&tabs=visual-studio​