【问题标题】:.NET 5 (NET Core 5) use libraries built against .NET Framework 4 - compatibility shim?.NET 5 (NET Core 5) 使用针对 .NET Framework 4 构建的库 - 兼容性垫片?
【发布时间】:2020-12-06 01:08:45
【问题描述】:

我有针对 .NET Framework 4.6 编译的第 3 方库(带有 .net 程序集的 dll)。我很确定他们不使用任何纯网络框架的东西,即如果我可以访问源代码,我也可以针对 .NET Core 3 或 .NET 5 编译它们。 我知道我不能直接从 .NET Core 引用此类库,但我看到提到了一些兼容性填充程序。

是否有一种简单的方法可以从 .NET 5 中以某种方式引用此类 .NET Framework dll?

【问题讨论】:

  • 将它们包装成 NuGet 包并欺骗 .NET Core 以使用它们(如果您如此确定的话)。
  • 我很确定他们不使用任何纯网络框架的东西那么你可能需要.net标准
  • @PavelAnikhouski 你是什么意思?情况是 - 已经针对 NetFramework 构建了一个 dll。我只有dll。需要使用它的项目是.NET 5. 使用那个dll是否可行?
  • @LexLi 谢谢,如果能获得更多关于此的说明会很酷 - 也许作为我可以接受的答案?现在正在尝试做一些事情,从未构建过 nuget 包。
  • 我说的都可以分割,网上搜一下,比如docs.microsoft.com/en-us/nuget/create-packages/…我不想长篇大论,大概不会有多少人会走这种怪路。

标签: .net .net-core .net-5


【解决方案1】:

我的建议是将 .NET Framework 库迁移到 .NET Standard。这将允许您在 .NET Core 和 .NET 5 项目中使用它们。您需要确保迁移到 .NET Standard 的适当版本,以确保与您希望在其中使用它们的各种项目的兼容性。我将提供一个链接到文档部分,其中概述了版本兼容性以及其他可能有用的信息。

如果您说现有库没有使用任何 .NET Framework 特定功能是正确的,那么这可能是一个相当简单的迁移。文档有关于如何从一个版本迁移到另一个版本的指南。

我不知道有任何“hacky”方法可以轻松绕过它。根据这些库对您的重要性,它可能值得也可能不值得,但这取决于您。如果您打算在未来的项目中经常使用它们,那么继续迁移它们可能是值得的。

只需确保为您的用例使用正确的 .NET Standard 版本。根据您将在其中使用它们的 .NET Core 版本,这可能会有所改变。

文档:https://docs.microsoft.com/en-us/dotnet/standard/net-standard

【讨论】:

  • 为什么要迁移?我明确表示我不能那样做。
猜你喜欢
  • 2017-04-18
  • 1970-01-01
  • 2020-07-07
  • 1970-01-01
  • 1970-01-01
  • 2011-02-18
  • 1970-01-01
  • 2015-07-29
  • 1970-01-01
相关资源
最近更新 更多