为 ASP.NET Webforms 应用程序转换 .NET 框架版本

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

我有一个非常旧的 Webforms 应用程序,是在 .NET Framework 2.0 版本上开发的

现在我想将其更改为较新版本的.NET(4.5或4.8)。

经过一番研究,我在 msdn 网站上找到了一个工具(升级助手),但它无法正确迁移解决方案。转换后出现了很多dll相关的问题。注意 - 它不支持 ASP.NET Webforms/网站模板进行转换。

除此之外,如何在不破坏代码库的情况下升级框架?

c# asp.net .net webforms
1个回答
1
投票

您没有提及或注明这是一个 ASP.NET 网站还是一个 ASP.NET 网站应用程序。

您可以确定差异,“应用程序”将具有 .sln 项目文件,而 ASP.NET 网站将没有项目文件。

因此,对于 ASP.NET 网站项目,您可以通过打开 .sln 文件来打开该项目。

对于 ASP.NET 网站,您可以从 Visual Studio 中选择文件 -> 打开网站。

我也会非常考虑使用 VS2019 代替 VS2022。这个建议有很多原因,其中之一是 vs2019 是 x32 位(在大多数情况下)。 vs2022 现在是 x64 位。在大多数情况下,vs2022 是 x64 位这一事实并不是什么大问题,但您的用例就是这样一个例外。

好的,以上信息已经讲完了吗?

打开项目(使用上面正确的 2 个选项之一)。

此时,为什么不尝试增加 .framework 设置。您当前拥有 .net 2.0,您可以尝试简单地将其更改为 .net 4.0。如果可以构建并编译,请尝试 .net 4.8。

您可以在这里找到该选项:

您也没有提及当前项目是否正确构建和运行。这是一个非常重要的细节。

换句话说,如果当前项目没有构建,我不会在.net框架中尝试上述更改。

我还会考虑强制项目为 x32 位 (x86),因为对于这样一个较旧的项目和框架,许多程序集和引用的库很可能只是 x32 位。当然,如果您一开始就无法将项目构建为 .net 2.0,那么这个问题就已经出现了。

所以,我会尝试更改指定的.net框架,看看项目是否可以构建。通常(在大多数情况下),当您更改/指定较新版本的 .net 框架时,此类项目可以并且将会正确构建。

换句话说,在大多数情况下不需要“转换”过程,只需更改(增加)用于构建项目的所选 .net 版本即可。您可以考虑从 2.0 更改为 3.5,然后构建项目。如果您只收到 1 或 2 个小错误?然后修复这 2-3 个错误。现在,您可以将项目增加到 .net 4.0,并执行相同的操作。到那时,如果项目构建为 .net 4.0,那么它很可能会构建并运行为 .net 4.8。

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