Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 处理平面依赖冲突_.net_Nuget - Fatal编程技术网

.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
如何在已发布的应用程序上拥有同一DLL的这两个版本


在我的现实生活场景中,我最终更新了其中一个库,因为我拥有它们。但是问题仍然存在。

您应该能够在主应用程序的app.config文件中使用,以允许John的lib使用Foo v2,前提是Foo v1和v2是兼容的。您不会有两个版本的Foo—只是最新版本。

但这就是问题所在,它们不兼容(因此发生了更改)。那么更新库可能是最好的解决方案。否则,您将不得不执行更复杂的操作,例如将一个程序集合并到另一个程序集,或者以某种方式将同一程序集的不同版本巧妙地加载到同一进程中。因此,如果最终库不是我的,并且存在兼容问题,除了那些疯狂的动态加载/静态链接引用的变通方法之外,没有其他解决方案了?是的,不幸的是。如果库John依赖于foov1,而foov2与foov1不兼容,那么您需要说服库作者更新他们的NuGet包。