System.Web.ApplicationServices 在 .NET 核心 2 中

System.Web.ApplicationServices in .NET Core 2

我正在 .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,系统找不到指定的文件

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

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

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