.net 处理平面依赖冲突
以以下为例:.net 处理平面依赖冲突,.net,nuget,.net,Nuget,以以下为例: John的lib引用了foov1.x.x Matt的lib引用了Foo v2.x.x Jeff的应用程序引用了John的库和Matt的库, 因此,在v1.x.x和v2.x.x.上间接需要Foo 如何在已发布的应用程序上拥有同一DLL的这两个版本 在我的现实生活场景中,我最终更新了其中一个库,因为我拥有它们。但是问题仍然存在。您应该能够在主应用程序的app.config文件中使用,以允许John的lib使用Foo v2,前提是Foo v1和v2是兼容的。您不会有两个版本的Foo—
引用了John的lib
foov1.x.x
引用了Matt的lib
Foo v2.x.x
引用了Jeff的应用程序
和John的库
, 因此,在Matt的库
和v1.x.x
上间接需要v2.x.x.
Foo
在我的现实生活场景中,我最终更新了其中一个库,因为我拥有它们。但是问题仍然存在。您应该能够在主应用程序的app.config文件中使用,以允许John的lib使用Foo v2,前提是Foo v1和v2是兼容的。您不会有两个版本的Foo—只是最新版本。但这就是问题所在,它们不兼容(因此发生了更改)。那么更新库可能是最好的解决方案。否则,您将不得不执行更复杂的操作,例如将一个程序集合并到另一个程序集,或者以某种方式将同一程序集的不同版本巧妙地加载到同一进程中。因此,如果最终库不是我的,并且存在兼容问题,除了那些疯狂的动态加载/静态链接引用的变通方法之外,没有其他解决方案了?是的,不幸的是。如果库John依赖于foov1,而foov2与foov1不兼容,那么您需要说服库作者更新他们的NuGet包。