https://www.toutiao.com/article/7415625503530369587/
近年来 .Net 版本发布非常快,目前.Net 8已非常稳定,.Net 9已经发布了RC版。
如此快的节奏,如此多的版本,自然就会有很多项目需要升级到新版本。手动升级的话,需要对各个版本特性比较了解、对修改的地方比较熟悉(项目文件、nuget包配置等等)、需要较高的耐心,并且很容易遗漏而出错。
我大微软已经开发了.Net 项目自动升级助手 .NET Upgrade Assistant, 可以自动升级.Net项目到指定的新版本,非常的方便快捷。
本质:.Net 项目升级助手(.NET Upgrade Assistant) 是 Visual Studio 的一个扩展插件
特色与功能:
支持多种类型的项目升级,基本包含所有项目
支持 .NET Framework 升级到 .NET 6+(包括 .NET 9.0 预览版)
支持 .NET Core 升级到 .NET 6+(包括 .NET 9.0 预览版)
支持 高于当前版本的任何 .NET 版本 升级到 .NET 6+(包括 .NET 9.0 预览版)
支持 Azure Functions v1、v2、v3 升级到 v4(面向 net6.0 或 net7.0)
支持 Xamarin.Forms 升级到 MAUI 和 Xamarin.Forms 升级到 MAUI
支持的项目类型众多,包括:
ASP.NET、Azure Functions、WPF、WinForms、Class libraries、Console、Xamarin.Forms、.NET MAUI、UWP
三种升级方式
In-place(就地升级):原始项目将一次性升级。如果您正在使用源代码管理,并且希望自己管理副本(例如,通过使用分支),则此选项适合您。
Side-by-side(并排升级):并排。原始项目将保持不变,将其副本添加到解决方案中,其中包含升级后的代码。如果您的应用程序有许多依赖项,这些依赖项在升级后可能会中断,则此类型可能很方便。这样,您可以签入进度,而不必担心应用程序无法构建。
Side-by-side incremental(并排增量):这是 Web 应用程序的理想选择。从 ASP.NET 升级到 ASP.NET Core 需要大量的工作,有时还需要手动重构(因为这两种技术非常不同)。类库通常与 Web 应用程序一起使用,因此我们也为类库启用这种类型的升级。增量升级会将 .NET 6/7 项目放在现有 .NET Framework 项目旁边,并将在 .NET 6/7 项目中实现的端点路由到该项目,而所有其他调用都将发送到 .NET Framework 应用程序。这样,您可以将升级与功能开发相结合,并将您的项目逐个移动到 .NET 6/7,而不会破坏您的应用程序。这种方法最初是在 Microsoft Project Migrations 工具中构建的,您可以将 Visual Studio 中的升级助手视为 Microsoft Project Migrations 的新改进和扩展版本。从 .NET Core 或 .NET 5 升级到 .NET 6/7 比从 .NET Framework 升级要容易得多,因此在这些情况下,建议使用就地选项。
可以升级到高于当前版本的任何版本
升级几乎全自动的,错误比较少
使用步骤(文末有视频演示):
安装Visual Studio 2022(2022是最建议的版本),选择好负载(支持的项目类型)
安装 .NET Upgrade Assistant 扩展
网络好的,在线安装