繁体   English   中英

.NET 5 项目不能真正与旧的第 3 方一起使用 .NET 框架 2.x/4.x 程序集

[英].NET 5 Project not really working with old 3rd Party .NET Framework 2.x/4.x assemblies

我目前正在使用新的 C# .NET 5 Blazor 项目。 当我们从 .NET 4 框架(使用旧代码的新项目)“升级”我们的应用程序时,我目前遇到一个问题,我找不到任何解决方案。

问题:我使用第 3 方程序集编写代码。 这个带有最新版本的第 3 方程序集的目标是 .NET 4.8。 现在,这个第 3 方程序集由于访问 .NET 5 框架 (AppDomain.CurrentDomain.SetupInformation.ConfigurationFile) 中不再存在的 AppDomain 部分而引发异常。 由于微软在 .NET 5 中删除或更改了 AppDomain 的使用方式。

现在我的问题是。 有没有办法让第三方程序集仍然加载它的目标并使用 .NET 框架 4.8 而不是主要项目 .NET 5 框架? 尽管我仍然能够使用它(不应抛出异常,因为 .NET 4.x 中存在 AppDomain 代码),而无需等待公司调整组件以支持 .NET 5?

我尝试使用“AssemblyLoadContext”,但到目前为止还没有成功。

感谢您提供任何信息或帮助! 注意安全!

除非另有说明,否则应假定 .Net 的新主要版本与旧版本不兼容。 然而,这条规则似乎有不少例外。

  • .Net 4 通常可以很好地加载.Net 3.x 程序集
  • .Net 5 据我所知大部分向后兼容.Net core 3

从.Net framework 4.8 到.Net core 和.Net 5 的变化非常显着。 虽然为了顺利过渡已经做了大量工作,但有一些功能已经从 .Net 5 中简单地删除了:

有一些技术将保持 .NET 框架特定,例如 AppDomains、Remoting 等、WCF 服务器和 WWF。

来源: .net 5 与 .net 框架的向后兼容性?

解决方案应该是将任何第三方库更新到针对 .net 标准、.net 核心或 .Net 5 的版本。大多数流行的库似乎已经更新。

如果这不可能,您可能需要考虑礼貌地请求作者更新库,或者自己更新库以防它们是开源的。

作为最后的手段,您可能希望用支持最新.Net 版本的其他东西替换库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM