Stack Overflow 社区您好,
我目前正在开发旧版 .NET 应用程序,并且正在寻求有关评估代码对最新 .NET 版本(特别是 .NET 8.0 和 .NET 9.0)的可移植性的指导。我想确保我的应用程序可以顺利过渡到较新的框架,同时保持兼容性。
我已经研究了 .Net 可移植性分析器,但无法生成有关最新 .net 目标(例如 8.0 或 9.0)的报告。
如果您能分享有关分析遗留应用程序以移植到最新 .NET 版本的任何见解、技巧或经验,我们将不胜感激。
预先感谢您的协助!
据我所知,没有这样的工具可以生成可用于收集升级路径的详细报告。
.NET 可移植性分析器不是您正在寻找的工具。它不能在 VS 2022 上使用,.NET 6+ 只能在 VS 2022 上运行。
现已弃用的 .NET 可移植性分析器的后继者(即 NET Upgrade Assistant 二进制分析)仍然不会生成更新 .NET 版本所需的必要代码更改的报告。
参考:https://learn.microsoft.com/en-us/dotnet/standard/analyzers/portability-analyzer
API 端口已被弃用,取而代之的是 .NET Upgrade Assistant 进行二进制分析。 API Port后端服务已关闭,需要离线使用该工具。有关更多信息,请参阅 .NET API 端口自述文件。
参考:https://github.com/dotnet/upgrade-assistant/blob/main/docs/binary_analysis.md
升级助手的二进制分析功能 (analyzebinaries) 允许您确定二进制文件(您可能/可能没有源代码)是否能够升级到您选择的目标框架和平台组合。
以下建议基于我使用 ASP.NET 的经验。我对升级桌面或移动应用程序完全不熟悉。
我认为,两条最好的路线是:
参考:https://learn.microsoft.com/en-us/aspnet/core/migration/proper-to-2x/?view=aspnetcore-8.0
过去对我有用的方法:
在我看来,从 .NET 5+ 开始的迁移只是名义上的,除非您需要利用更新的语言功能。