带有MoreLINQ的.NET Framework 4.7.2

问题描述

我正在尝试使用VS2019将.NET Framework 4.7.2更新为大型解决方案。此解决方案的问题之一是它是一个大型插件类型的体系结构,由于多种原因,我无法使用该解决方案提供的更新的共享库集将插件重新编译并发布到生产环境。

通常这是可以的,但是我们必须非常小心以确保完全向后的二进制兼容性。当我们最近升级到.NET 4.7.2时,我们开始在System.LinqMoreLinq之间收到冲突的使用情况指示,通常是在我们通常使用的.ToHashSet()扩展名上。该问题在MoreLinq's github

上有所概述

我认为纠正此问题的唯一方法是将MoreLINQs的使用隔离到我控制的单个DLL中,并且一旦所有插件都引用该DLL升级到4.7.2,即可在以下公共位置修复.ToHashSet()调用那个时候。

有人知道有一种更好/更有效的方法来执行此操作,而无需立即重新释放所有插件吗?我不知道的某种全球重定向?

解决方法

显然这是可行的。将解决方案常见的DLLs @ 4.7.2与较旧的插件@ 4.5.2一起安装可以很好地工作,即使这些插件在Visual Studio中针对4.7.2进行编译时也会出现编译错误。

我很想知道什么内部因素使这一成功得以实现。系统是否为正在运行的进程加载多个版本的.NET Framework DLL?

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...