.NET 升级助手概述
新版本 .NET 全年发布,主要版本每年发布一次。 .NET 升级助手有助于将 .NET、.NET Core 或 .NET Framework 早期版本中的应用升级到最新版本。
.NET 升级助手是一个 Visual Studio 扩展和命令行工具,旨在帮助将应用升级到最新版本的 .NET。
可以通过选择“帮助”>“发送反馈”>“报告问题”,在 Visual Studio 中提交与 .NET 升级助手相关的问题。
安装升级助手
.NET 升级助手可以作为 Visual Studio 扩展或 .NET 命令行工具安装。 有关详细信息,请参阅安装 .NET 升级助手。
支持的语言
支持以下代码语言:
- C#
- Visual Basic
支持的项目
支持以下项目类型:
- ASP.NET
- Azure Functions
- Windows Presentation Foundation
- Windows 窗体
- 类库
- Console 应用程序
- .NET Native UWP
- Xamarin Forms
- .NET MAUI
升级路径
支持下列升级路径:
- .NET Framework 到 .NET
- .NET Core 到 .NET
- UWP 到 WinUI 3
- 以前的 .NET 版本到最新 .NET 版本
- Azure Functions v1-v3 到 v4(独立)
- Xamarin Forms 到 .NET MAUI
- XAML 文件转换仅支持升级命名空间。 若要进行更全面的转换,请使用 Visual Studio 2022 版本 17.6 或更高版本。
使用 Visual Studio 扩展升级
安装 .NET 升级助手扩展后,右键单击“解决方案资源管理器”窗口中的项目,然后选择“升级”。
注意
如果不使用源代码管理,请确保在升级之前备份项目。
将打开一个选项卡,该选项卡根据项目类型提供不同的升级样式:
就地项目升级
此选项无需复制即可升级项目。
并行项目升级
复制项目并升级副本,从而保留原始项目。
并行增量
对于复杂的 Web 应用,这是一个不错的选择。 从 ASP.NET 升级到 ASP.NET Core 需要进行大量的工作,有时还需要手动重构。 此模式将 .NET 项目放在现有 .NET Framework 项目旁,并路由在 .NET 项目中实现的终结点,而所有其他调用将发送到 .NET Framework 应用程序。
此模式允许你逐个缓慢升级 ASP.NET 或库应用。
升级应用后,将显示状态屏幕,其中显示与升级关联的项目相关的所有项目。 可以展开每个升级项目,以阅读有关状态的详细信息。 以下列表介绍了状态图标:
- 已填充绿色复选标记:项目已升级并成功完成。
- 未填充绿色复选标记:工具找不到有关要升级的项目的任何内容。
- 黄色警告标志:项目已升级,但应考虑重要信息。
- 红色 X:项目要升级,但升级失败了。
此外,升级助手执行的操作将记录到“升级助手”源下的“输出”窗口,如下图所示:
升级项目后,需要对其进行全面测试。
使用 CLI 工具升级
安装 .NET 升级助手 CLI 工具后,打开终端窗口并导航到包含要升级的项目的目录。 可以使用 upgrade-assistant --help
命令查看 CLI 提供的可用选项。
注意
如果不使用源代码管理,请确保在升级之前备份项目。
使用 upgrade-assistant upgrade
命令运行该工具,其中列出了当前文件夹中的所有项目及以下内容。 CLI 工具提供了一种交互式方式来选择要升级的项目。 使用箭头键选择项目,然后按 Enter 运行该项目。 选择要升级的项目。 在本文提供的示例中,当前文件夹下有四个项目:
Selected options
───────────────────────────────────────────────────────────
No options specified, follow steps below to continue
Steps
─────────────────
Source project
─────────────────
Which project do you want to upgrade (found 9)?
> MatchingGame (winforms\MatchingGame\MatchingGame.csproj)
MatchingGame.Logic (winforms\MatchingGame.Logic\MatchingGame.Logic.csproj)
StarVoteControl (csharp\StarVoteControl\StarVoteControl.csproj)
WebSiteRatings (csharp\WebSiteRatings\WebSiteRatings.csproj)
Navigation
Exit
根据你升级的项目,你可能会看到一个选项,用于指定升级应该如何进行:
就地项目升级
此选项无需复制即可升级项目。
并行项目升级
此选项仅适用于.NET Framework 项目。 复制项目并升级副本,从而保留原始项目。
Selected options
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Source project C:\Code\winforms\MatchingGame\MatchingGame.csproj
Steps
───────────────────────────────
Source project / Upgrade type
───────────────────────────────
How do you want to upgrade project MatchingGame?
> In-place project upgrade
Side-by-side project upgrade
Navigation
Back
Exit
完成此步骤后,如果有多个可升级的目标框架,你将选择一个目标:
Selected options
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Source project C:\Code\Work\dotnet\dotnet-docs\docs\core\porting\snippets\upgrade-assistant-wpf-framework\winforms\MatchingGame\MatchingGame.csproj
Ugrade type Inplace
Steps
──────────────────────────────────────────────────
Source project / Ugrade type / Target framework
──────────────────────────────────────────────────
What is your preferred target framework?
> .NET 6.0 (Supported until November, 2024)
.NET 7.0 (Supported until May, 2024)
.NET 8.0 (Try latest preview features)
Navigation
Back
Exit
升级项目后,需要对其进行全面测试。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈