我有一个项目P引用两个dll说A.dll和B.dll。 A.dll反过来引用X.dll的1.0.0.0版本和B.dll引用X.dll的2.0.0.0版本。 因此,当我运行P的代码时,我需要为它提供两个版本的X.出于某些原因,我也不想要GAC。所以我想简单地将它们放在bin文件夹中,但文件名不同:X.dll和X.v2.dll。但是,这导致在运行P时出现此错误:
无法加载文件或程序集X.v2.dll或其依赖项之一。 定位的程序集清单定义与程序集不匹配 参考
我认为这是因为,当运行引入A.dll然后想要加载X的版本1的代码时,在加载X.dll之前尝试加载X.v2.dll,因此抛出异常。
这个假设是否正确?那么如何处理需要提供两个版本的程序集而不将它们放入GAC?
(A.dll和B.dll,X.dll和X.v2.dll都被强烈命名)