gpt4 book ai didi

asp.net - 是否可以从 ASP.NET Core MVC 项目中引用 .net framework 4.7.2 类库?

转载 作者:行者123 更新时间:2023-12-03 15:06:56 25 4
gpt4 key购买 nike

我有一个运行良好的 ASP.NET MVC 5 项目,它也引用了一个 .NET Framework 4.7.2 类库,它生成了一些 CrystalReports。 CrystalReports 不支持 .NET Core,因此类库将保留完整的 .NET Framework。

现在,如果我将 ASP.NET MVC 5 升级到 ASP.NET Core 2(或 3),我是否能够引用类库并可能生成那些 CrystalReports?

最佳答案

.NET Core 不支持包含 .NET Framework 库。时期。但是,.NET Core 支持 .NET Standard,并且由于 .NET Framework 也实现了 .NET Standard,Microsoft 在编译器中做了一个特殊的异常(exception),允许您包含 .NET Framework 库,但警告它们实际上可能根本不起作用或完全。当您在 .NET Core 项目中包含 .NET Framework 库时,您会收到有关此效果的警告,您需要确保该库端到端正确运行。

大多数 .NET Framework 库都可以工作,只要它们不使用特定于 .NET Framework 的 API(最显着的是特定于 Windows 的 API)。如果他们这样做,那么他们将无法工作。

在这里,这个库似乎确实使用了 Windows 特定的 API,这意味着它与 .NET Core 不兼容。在这种情况下,您仍然可以创建 ASP.NET Core 项目,但您必须面向 .NET Framework,而不是 .NET Core。也就是说,直到 ASP.NET Core 3.0,它不能以 .NET Framework 为目标。 ASP.NET Core 3.0+ 依赖于 .NET Standard 2.1,没有任何版本的 .NET Framework 支持或永远不会支持。

因此,如果您需要使用不 100% 符合 .NET Standard 2.0 的 .NET Framework 库,则必须以 .NET Framework 为目标,如果必须以 .NET Framework 为目标,则版本锁定在 ASP 2.2 .NET 核心。

更新

这个答案现在有点旧,但以防万一它仍然有用,我个人处理这种事情的方式是创建一个非常小而简单的 API。基本上,您创建一个面向 .NET Framework 的 ASP.NET Core 2.1 (LTS) 应用程序,该应用程序所做的就是与 .NET Framework 库进行交互。这意味着创建报告。然后,您可以自由地将实际应用创建为面向 .NET Core 的 ASP.NET Core 3.1+ 应用,您只需调用 API 即可获取数据、报告,以及您需要的任何内容。这有点像轻量级微服务方法。

关于asp.net - 是否可以从 ASP.NET Core MVC 项目中引用 .net framework 4.7.2 类库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58658260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com