首页 > 解决方案 > .NET Core 2 中的 System.Web.ApplicationServices

问题描述

我正在.NET Core 2 中构建一个 Web API。我正在使用一些自定义 nuget 包来利用它们的内置功能。这些自定义包是针对较旧的 .NET 版本 (4.6.1) 构建的。问题是其中一些包引用了旧的 System.Web dll。我在解决方案中的一些自定义包上收到此警告

使用 '.net framework version=v4.6.1 而不是使用 proj 目标框架恢复包。

当我在其中一个自定义包中调用代码时,该应用程序也在下面抛出此异常

System.IO.FileNotFoundException: 无法加载文件或程序集 System.Web.ApplicationServices, Version=4.0.0.0, Culture=neutral,系统找不到指定的文件

除了在我的 Web Api 中重写代码之外,还有什么方法可以解决这个问题吗?

标签: asp.net-coreversionnuget-package-restoresystem.web.net-4.6.1

解决方案


No.System.Web与 Core 完全不兼容。虽然 Microsoft 开放了以 .NET Framework 为目标的 NuGet 包以与 .NET Core 一起使用,但它这样做仅基于 .NET Standard 2.0 兼容性,并且不保证这些包将部分或全部运行。实际上,您会在编译期间收到一条警告,告诉您同样多的信息。此外,虽然您实际上可以让 ASP.NET Core 应用程序之类的东西实际上以 .NET Framework 为目标,但同样不能保证第三方组件的兼容性,这仅仅是因为它们以相同的框架为目标。

总而言之,如果根本有任何依赖System.Web,你就不能使用它。


推荐阅读