1

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

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

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

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

4

1 回答 1

0

显然这只是工作。将解决方案公用 DLL @ 4.7.2 与旧插件 @ 4.5.2 一起安装效果很好,即使这些插件在 Visual Studio 中针对 4.7.2 进行编译时出现编译错误。

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

于 2020-10-05T16:53:12.587 回答