.NET Framework 4.7.2 with MoreLINQ



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

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

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

有没有人知道一种更好/更有效的方法来做到这一点,而不需要一次重新发布所有插件?某种我不知道的全球重定向?

显然这是有效的。将解决方案通用DLL@4.7.2与旧插件@4.5.2一起安装效果良好,尽管这些插件在Visual Studio中针对4.7.2进行编译时存在编译错误。

我很想知道是什么内在因素使这项工作取得了成功。系统是否为正在运行的进程加载多个版本的.NET框架DLL?

最新更新