如何在不使用GAC的情况下引用和提供不同版本的程序集

时间:2013-11-21 14:49:07

标签: c# .net assemblies

我有一个项目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都被强烈命名)

0 个答案:

没有答案