我已阅读以下内容以及关于SO的大量帖子:
但是我似乎无法实现(不求助于GAC解决方案)我所需要的如下:
ThirdPartyLibrary.dll
通过NuGet安装,并且具有AutoMapper的AutoMapper依赖性> = 6.2.2,但是 仅工作 且AutoMapper = 6.2.2(即使该依赖性未指定)
MyClassLibrary.dll
这是我正在生产的东西。引用了AutoMapper 8.x,并具有AutoMapper> = 8.0.0的依赖项。还需要引用 ThirdPartyLibrary.dll
在MyClassLibrary实际调用ThirdPartyLibrary.SomeMethod()之前,一切似乎都还可以,然后失败,因为ThirdPartyLibrary现在正在使用AutoMapper 8.x并引发异常。
所以我的问题是:
在不从AutoMapper 8.x降级的情况下,如何使ThirdParty使用AutoMapper的6.2.2和MyClassLibrary使用8.x进行?
我很高兴使用一些app.config或AssemblyResolve来做到这一点。如果必须使用AssemblyResolve,则可以在MyClassLibrary中挂起该事件,否则会很好,否则我将不得不根据MyClassLibrary重新访问所有应用程序。