.NET 5 项目并没有真正使用旧的第 3 方 .NET Framework 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 Framework(使用旧代码的新项目)“升级”我们的应用程序时,我目前 运行 遇到一个问题,我找不到任何解决方案。
问题:
我使用第 3 方程序集编写代码。这个具有最新版本的第 3 方程序集的目标是 .NET 4.8。现在,由于访问 .NET 5 Framework 中不再存在的 AppDomain 部分 (AppDomain.CurrentDomain.SetupInformation.ConfigurationFile),此第 3 方程序集抛出异常。由于 Microsoft 删除或更改了 AppDomains 现在在 .NET 5 中的使用方式。
现在我的问题是。有没有办法让第 3 方程序集仍然加载,它以 .NET Framework 4.8 为目标并使用 .NET Framework 4.8 而不是主要项目 .NET 5 Framework?我仍然可以使用它(不应抛出任何异常,因为 .NET 4.x 中存在 AppDomain 代码),而不必等待公司调整程序集以支持 .NET 5?
我尝试使用“AssemblyLoadContext”,但直到现在都没有成功。
感谢您提供任何信息或帮助!
保持安全!
除非另有说明,否则应假定 .Net 的新主要版本与旧版本不兼容。但是,这条规则似乎有很多例外。
- .Net 4 通常可以很好地加载 .Net 3.x 程序集
- .Net 5 据我所知大部分向后兼容 .Net 核心 3
从 .Net framework 4.8 到 .Net core 和 .Net 5 的变化非常显着。虽然为顺利过渡做了很多工作,但有些功能只是从 .Net 5 中删除:
There are some technologies that will remain .NET Framework specific, such as AppDomains, Remoting, etc, WCF Server and WWF.
来源:.net 5 backward compatiblity with .net framework?
解决方案应该是将任何第三方库更新到针对 .net 标准、.net 核心或 .Net 5 的版本。大多数流行的库似乎已经更新。
如果这不可能,您可能需要考虑礼貌地请求作者更新库,或者自己更新库,以防它们是开源的。
作为最后的手段,您可能希望将这些库替换为支持最新 .Net 版本的其他内容。
我目前正在使用一个新的 C# .NET 5 Blazor 项目。当我们从 .NET 4 Framework(使用旧代码的新项目)“升级”我们的应用程序时,我目前 运行 遇到一个问题,我找不到任何解决方案。
问题: 我使用第 3 方程序集编写代码。这个具有最新版本的第 3 方程序集的目标是 .NET 4.8。现在,由于访问 .NET 5 Framework 中不再存在的 AppDomain 部分 (AppDomain.CurrentDomain.SetupInformation.ConfigurationFile),此第 3 方程序集抛出异常。由于 Microsoft 删除或更改了 AppDomains 现在在 .NET 5 中的使用方式。
现在我的问题是。有没有办法让第 3 方程序集仍然加载,它以 .NET Framework 4.8 为目标并使用 .NET Framework 4.8 而不是主要项目 .NET 5 Framework?我仍然可以使用它(不应抛出任何异常,因为 .NET 4.x 中存在 AppDomain 代码),而不必等待公司调整程序集以支持 .NET 5?
我尝试使用“AssemblyLoadContext”,但直到现在都没有成功。
感谢您提供任何信息或帮助! 保持安全!
除非另有说明,否则应假定 .Net 的新主要版本与旧版本不兼容。但是,这条规则似乎有很多例外。
- .Net 4 通常可以很好地加载 .Net 3.x 程序集
- .Net 5 据我所知大部分向后兼容 .Net 核心 3
从 .Net framework 4.8 到 .Net core 和 .Net 5 的变化非常显着。虽然为顺利过渡做了很多工作,但有些功能只是从 .Net 5 中删除:
There are some technologies that will remain .NET Framework specific, such as AppDomains, Remoting, etc, WCF Server and WWF.
来源:.net 5 backward compatiblity with .net framework?
解决方案应该是将任何第三方库更新到针对 .net 标准、.net 核心或 .Net 5 的版本。大多数流行的库似乎已经更新。
如果这不可能,您可能需要考虑礼貌地请求作者更新库,或者自己更新库,以防它们是开源的。
作为最后的手段,您可能希望将这些库替换为支持最新 .Net 版本的其他内容。