C# .NET 5项目不能真正使用旧的第三方.NET Framework 2.x/4.x程序集

C# .NET 5项目不能真正使用旧的第三方.NET Framework 2.x/4.x程序集,c#,.net,.net-5,.net-4.8,C#,.net,.net 5,.net 4.8,我目前正在处理一个新的C#NET 5 Blazor项目。当我们从.NET4框架(使用旧代码的新项目)中“升级”我们的应用程序时,我目前遇到了一个问题,我找不到任何解决方案 问题是: 我使用第三方程序集编写代码。此第三方程序集的最新版本以.NET 4.8为目标。现在,此第三方程序集由于访问AppDomain中不再存在于.NET 5 Framework中的部分(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile)而引发异常。由于mic

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

问题是: 我使用第三方程序集编写代码。此第三方程序集的最新版本以.NET 4.8为目标。现在,此第三方程序集由于访问AppDomain中不再存在于.NET 5 Framework中的部分(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile)而引发异常。由于microsoft删除或更改了AppDomains现在在.NET5中的使用方式

现在我的问题是。是否有任何方法可以让第三方程序集仍然加载,它的目标是使用.NET Framework 4.8而不是主要项目.NET 5 Framework?尽管我仍然能够使用它(不应该抛出异常,因为AppDomain代码存在于.NET4.x中),而不必等待公司调整程序集以支持.NET5

我尝试使用“AssemblyLoadContext”,但直到现在都没有成功

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

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

  • .NET4通常可以加载.NET3.x程序集
  • 就我所知,.NET5与.NETCore3基本上是向后兼容的
从.NETFramework4.8到.NETCore和.NET5的变化非常显著。虽然为使过渡顺利进行已经做了大量工作,但有些功能已从.Net 5中删除:

有些技术仍然是.NET Framework特有的,如AppDomains、远程处理等、WCF服务器和WWF

资料来源:

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

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


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

检查。没有
.Net 5 Framework
。NET5是.NETCore5。您不能使用.NET旧程序集。至于.NETFramework2.0,它的运行时甚至与.NETFramework4都不同。在.NET 4中使用.NET 2.0程序集存在兼容性问题。这取决于哪个第三方程序集。如果你有源代码,你可以用.NET内核进行编译,可能需要修改。嗨,不,我只有已编译的程序集,但我无法将它重新编译到目标.NET内核。好吧,这就是我一直认为它不会真正起作用的原因。谢谢你的输入!Net的新版本是自包含的,您只需要安装一个版本的Net。旧版本的Net(如4.0)需要安装NET1.0、2.0、3.0、3.5和4.0。如果您的项目仍然引用旧版本的Net,那么您必须使用新版本的Net(干净构建)重新构建,或者安装旧版本的Net。嘿,Bud,ty,谢谢您的回复!正如您已经提到的,例如,AppDomain不再像以前在旧版本中那样存在。由于第三方程序集不提供任何源代码,我只能降级我的项目,或者希望他们更新程序集以支持.NET 5。再次感谢你的帮助!