加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-4 – 将ASP.NET Core与旧版.Net Framework代码混合

发布时间:2020-12-16 07:13:31 所属栏目:asp.Net 来源:网络整理
导读:我有一些遗留的.NET代码,我想用API包装. 该代码是ASP.NET Webforms和.NET Framework 4.0的混合体 我希望使用新的ASP.NET Core Web API,并基于此框架创建了一个新的解决方案,并将遗留代码添加为现有项目. 一切都建立好但是当我尝试调用一些遗留代码时,我收到
我有一些遗留的.NET代码,我想用API包装.

该代码是ASP.NET Webforms和.NET Framework 4.0的混合体

我希望使用新的ASP.NET Core Web API,并基于此框架创建了一个新的解决方案,并将遗留代码添加为现有项目.

一切都建立好但是当我尝试调用一些遗留代码时,我收到以下错误:

System.TypeInitializationException occurred HResult=0x80131534
Message=The type initializer for ‘TreeManager’ threw an exception.
Source=

Inner Exception 1: FileNotFoundException: Could not load file or
assembly ‘System.Web.Extensions,Version=4.0.0.0,Culture=neutral,
PublicKeyToken=31bf3856ad364e35’. The system cannot find the file
specified.

这是我调用的代码:

TreeManager.LoadEvent += LoadTree;

public class TreeManager
{
    ...
    public static event EventHandler<LoadEventArgs> LoadEvent;
    ...
}

我尝试将遗留代码更新到.NET 4.5.2但得到相同的错误.

我使用ASP.NET MVC 4 API 2使用API??包装遗留代码,并且一切运行良好.

是否可以这样做,如果是这样,我需要做出哪些改变?

解决方法

首先,您可以选择使用ASP.NET Core应用程序来定位.NET Core或完整框架.仅仅因为它的“核心”并不意味着你必须使用.NET Core.如果您正在使用旧版API,则可能会被迫在完整框架上运行.

如果您需要或只是想使用.NET Core,以便可以在Windows环境之外部署应用程序,那么您将需要将任何不受支持的API迁移到备用API,或者如果没有替代API则可能会重写功能存在.

.NET Core 2.0支持.NET Standard 2.0,它具有非常大的API占用空间.因此,Microsoft开放了与旧版.NET Framework库和软件包的兼容性.但是,不保证您可以充分利用这些库和包.仅仅因为您可以添加依赖项并不意味着您可以使用所有API.这可能就是你在这里碰到的.这组特定的API依赖于System.Web,而System.Web不是.NET Core的一部分.

最近,微软发布了一些工具,使这样的迁移方案更容易.首先是.NET API Analyzer,这是一个NuGet包,它会将Intellisense标注添加到与各种目标不兼容的API调用中.这将帮助您跟踪需要更改的代码,并在您编写新代码时提醒您,您需要以与以往不同的方式执行操作.

其次,还有Windows Compatibility Pack for .NET Core,另一个NuGet软件包支持完整框架中许多较旧的Windows专用API.这可以在您的迁移过程中为您提供一些喘息的空间,如果您需要更改某些内容,请稍微减少一些.尽管如此,我们仍然鼓励您最终切换出此代码,最终将应用程序完全脱离依赖关系.

最后,如果这些都没有帮助,您可能只需要找到替代方案.这可能需要安装第三方NuGet并重写一些代码以使用它而不是之前使用的代码.

没有人声称迁移很容易;这总是一场艰苦的战斗.如果您现在没有足够的带宽,只需定位完整框架并将其称为一天.否则,尽可能地挖掘并解决它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读