有没有一种方法可以分析遗留应用程序中的程序集,并查看我的代码在最新的 .Net 版本(例如 .net8.0 或 .net9.0)中的可移植性?

问题描述 投票:0回答:1

Stack Overflow 社区您好,

我目前正在开发旧版 .NET 应用程序,并且正在寻求有关评估代码对最新 .NET 版本(特别是 .NET 8.0 和 .NET 9.0)的可移植性的指导。我想确保我的应用程序可以顺利过渡到较新的框架,同时保持兼容性。

我已经研究了 .Net 可移植性分析器,但无法生成有关最新 .net 目标(例如 8.0 或 9.0)的报告。

如果您能分享有关分析遗留应用程序以移植到最新 .NET 版本的任何见解、技巧或经验,我们将不胜感激。

预先感谢您的协助!

c# asp.net .net upgrade analyzer
1个回答
0
投票

据我所知,没有这样的工具可以生成可用于收集升级路径的详细报告。

.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 的经验。我对升级桌面或移动应用程序完全不熟悉。

我认为,两条最好的路线是:

  1. 使用 .NET 升级助手,因为它与并排选项 (YARP) 一起使用
  2. 将 .NET Framework 应用程序更新到最新的 .NET Framework 版本,并利用升级路径。

参考:https://learn.microsoft.com/en-us/aspnet/core/migration/proper-to-2x/?view=aspnetcore-8.0

过去对我有用的方法:

  • 将 .NET Framework 3/4.X 迁移到 .NET Framework 4.8
  • 然后,.NET Framework 4.8 到 .NET Core 3.1
  • 然后,.NET Core 3.1 到 .NET 6

在我看来,从 .NET 5+ 开始的迁移只是名义上的,除非您需要利用更新的语言功能。

© www.soinside.com 2019 - 2024. All rights reserved.