我有一个普通的ASP.NET MVC应用程序(.NET版本4.5.2) Web.config:
<httpRuntime targetFramework="4.5.2"/>
对于其中一项增强功能,我不得不引用一个旧的安全组件,该组件是在.NET 2.0中内置的,它引用了“ LinqBridge.dll”。现在,我的Web应用程序已经从System.Linq程序集中了解Linq扩展方法。当我编译我的Web应用程序时,它可以正常编译并将“ LinqBridge.dll”复制到我的bin中。在我的CSHTML页面中,我有代码“ somevar.Count()”。这里的Count()方法用红色下划线。(如果我只是尝试运行Web应用程序并浏览该CSHTML页面,则会出现相同的错误-仅出于此目的)
错误
错误CS0121,以下方法或属性之间的调用不明确:“ System.Linq.Enumerable.Count(System.Collections.Generic.IEnumerable)”和“ System.Linq.Enumerable.Count(System.Collections.Generic)。 IEnumerable)'
现在,如果我从bin中删除“ LinqBridge.dll”,则可以使用,但是当我尝试使用旧的汇编代码时,它将进行故障转移。
我被这个问题困扰。有没有一种方法可以告诉我的Web应用程序不要打扰内部/请参阅“ LinqBridge.dll”。因此,只有旧程序集会使用它作为参考。我无法更改这两个项目的任何版本或代码。
尝试使用代码库解决方案https://devnet.kentico.com/articles/referencing-multiple-versions-of-the-same-assembly-in-a-single-application,但没有运气。