微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在.Net Framework 4.8中使用.Net Standard 2.1 DLL?

如何解决如何在.Net Framework 4.8中使用.Net Standard 2.1 DLL?

我有一个针对.Net Framework 4.8的项目。现在,我们需要使用第三方dll。问题在于该dll是针对.Net Standard 2.1的。

是否可以在.Net Framework 4.8项目中使用此dll?

添加了dll,出现此错误

Could not load file or assembly 'netstandard,Version=2.1.0.0,Culture=neutral,PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. The system cannot find the file specified.

搜索了一下,似乎应该可以直接使用。也许我需要添加参考?不确定现在需要做什么。

谢谢

解决方法

否,.NET Framework 4.8不实现.Net Standard 2.1。 https://docs.microsoft.com/en-us/dotnet/standard/net-standard的.Net Standard .NET实施支持矩阵在“框架”下未包含2.1的条目。

有关MS决定的更多详细信息:https://devblogs.microsoft.com/dotnet/announcing-net-standard-2-1/

提取:

鉴于.NET Standard 2.1中的许多API附加要求运行时 为了使更改有意义,.NET Framework 4.8将保留在 .NET Standard 2.0,而不是实现.NET Standard 2.1。 .NET核心 3.0以及即将发布的Xamarin,Mono和Unity版本将进行更新,以实现.NET Standard 2.1。

需要支持.NET Framework客户的图书馆作者应 继续使用.NET Standard 2.0。实际上,大多数图书馆应该能够 保留.NET Standard 2.0,因为API的添加主要用于 高级方案。但是,这并不意味着图书馆作者 即使它们必须支持.NET也无法利用这些API 框架。在这种情况下,他们可以使用多目标进行编译 .NET Standard 2.0和.NET Standard 2.1。这允许 编写可以暴露更多功能或提供更高效率的代码 在不支持.NET Standard 2.1的运行时上实现 放弃了.NET Standard 2.0提供的更大范围。

简而言之,最简单的方法是说服第三方支持向后移植/多目标也支持netstandard2.0。或者,您可以切换到.Net Core 3.1(LTS)/ Mono,而不是Framework 4.8。

更新:

您还可以尝试使用.NET Framework兼容模式进行一些欺骗。我不知道你能做到这一点。例如,您可以制作一个针对标准的“包装”项目,并同时引用您的.Net Framework 4.8代码和第3方库,除非4.8部分使用WPF-也许还有其他陷阱,如下所述。这听起来让我很困惑,但是如果您没有其他选择,那么值得一试。在同一原始站点上:

.NET Framework兼容模式从.NET Standard 2.0开始 被介绍了。此兼容模式允许.NET Standard(*)项目 引用.NET Framework库,就像为它们编译一样 .NET标准。引用.NET Framework库不适用于 所有项目,例如使用Windows Presentation的库 基础(WPF)API。

(*)-也是.Net Core(在文档/页面的其他地方)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。