在.NET世界中,如何管理可能引起版本冲突的传递依赖关系是最佳实践?
具体而言:
项目A依赖于项目B,而项目B又依赖于库C。
同时,
项目A还依赖于项目X,而项目X依赖于不同且(可能)不兼容的库C版本。
A->B->Cv1.0
&
A->X->Cv2.0
其中
Cv1.0 <> Cv2.0
有方法可以使这个工作吗?
能否在没有使用GAC的情况下完成?
即使B和X仅以二进制格式存在(源代码不可访问),也能够完成吗?
换句话说,在Project A中,是否有一种方式可以使Project B和X各自使用其依赖项,而不会导致冲突。
注意:我意识到理想情况下根本不应该存在这个问题,但随着对外部库的依赖程度增加,这将是不可避免的副作用。因此,我想知道如果出现这种情况,最好的处理方法是什么。