如何将 Windows 窗体桌面应用升级到 .NET 7
本文介绍如何将Windows 窗体桌面应用升级到 .NET 7。 尽管 Windows 窗体在 .NET 这一跨平台技术上运行,但 Windows 窗体仍然是一个仅限 Windows 的框架。 可以使用 .NET Upgrade Assistant 升级以下与 Windows 窗体相关的项目类型:
- Windows 窗体项目
- 控件库
- .NET 库
还应该查看从 .NET Framework 移植到 .NET 指南中的信息。
先决条件
- Windows 操作系统
- 面向 .NET 7 的 Visual Studio 2022 17.1 或更高版本
- 面向 .NET 8 的 Visual Studio 2022 17.7 预览版 1 或更高版本
- 适用于 Visual Studio 的 .NET 升级助手扩展
演示应用
本文是在升级 Windows 窗体匹配游戏示例项目的背景下编写的,可以从 .NET 示例 GitHub 存储库下载该项目。
启动升级
如果要升级多个项目,请从没有依赖项的项目开始。 在匹配游戏示例中,MatchingGame 项目依赖于 MatchingGame.Logic 库,因此应首先升级 MatchingGame.Logic。
提示
请务必对代码进行备份,例如在源代码管理中或副本中。
使用以下步骤在 Visual Studio 中升级项目:
右键单击“解决方案资源管理器”窗口中的 MatchingGame.Logic 项目,然后选择“升级”:
将打开一个新选项卡,提示你选择执行升级的方式。
选择“就地项目升级”。
接下来,选择目标框架。 根据要升级的项目类型,会显示不同的选项。 如果该库不依赖于 Windows Froms 等桌面技术并且可以由 .NET Framework 项目和 .NET 项目使用,那么 .NET Standard 2.0 是一个不错的选择。 但是,最新的 .NET 版本相对于 .NET Standard 提供了许多语言和编译器改进。
选择 .NET 7.0,然后选择“下一步”。
此时将显示一个树状结构,其中包含与项目相关的所有工件,例如代码文件和库。 可以升级单个生成生成工件或整个项目(这是默认设置)。 选择“升级选择”以开始升级。
升级完成后,将显示结果:
具有实心绿色圆圈的生成工件已升级,而具有空绿色圆圈的生成工件则被跳过。 跳过的生成工件意味着升级助手没有找到任何可以升级的内容。
现在应用程序的支持库已升级,请升级主应用程序。
升级应用
升级所有支持库后,即可升级主应用项目。 对于示例应用程序,只有一个库项目需要升级,该项目已在上一部分中升级。
- 右键单击“解决方案资源管理器”窗口中的 MatchingGame 项目,然后选择“升级”:
- 选择“就地项目升级”作为升级模式。
- 选择“.NET 7.0”作为目标框架,然后选择“下一步”。
- 保留选中所有项目,然后选择“升级选择”。
升级完成后,将显示结果。 请注意 Windows 窗体项目为何具有警告符号。 展开该步骤,将显示有关该步骤的更多信息:
请注意,项目升级组件提到默认字体已更改。 由于字体可能会影响控件布局,因此需要检查项目中的每个表单和自定义控件,以确保 UI 排列正确。
生成干净的内部版本
项目升级后,清理并编译它。
- 右键单击“解决方案资源管理器”窗口中的 MatchingGame 项目,然后选择“清理”。
- 右键单击“解决方案资源管理器”窗口中的 MatchingGame 项目,然后选择“生成”。
如果应用程序遇到任何错误,可以在“错误列表”窗口中找到这些错误,并提供修复这些错误的建议。
结论
Windows 窗体匹配游戏示例项目现已升级到 .NET 7。 迁移自己的项目时,结果会有所不同。 请务必花时间查看从 .NET Framework 移植到 .NET 指南和从 .NET Framework 升级到 .NET 后的现代化一文。