如果 A 引用程序集 B 1.1 和 C,C 引用 B 1.2,如何避免程序集冲突?
我本来以为 C 的引用会被封装起来,不会造成任何问题,但似乎所有的 dll 都被复制到 bin 中,这就是问题发生的地方。
我了解解决此问题的两种方法是使用 GAC 还是程序集绑定(bind)? GAC 对我来说似乎不是最好的方法,因为我不喜欢假设 dll 在那里,我更喜欢在我的解决方案中引用 lib 目录中的 dll。
在我看来程序集绑定(bind)不可靠的地方,如果一个版本的程序集具有另一个版本没有的功能,这会不会产生问题?
在我的例子中,这是因为我使用的第 3 方 dll 使用的 nHibernate 版本比我自己使用的要旧。
最佳答案
我过去使用 GAC 取得过相同的结果,但您应该质疑您必须引用多个版本的原因,并尽可能避免这样做。如果你必须这样做,一个 binding redirect可能对您有所帮助。
还有,你读过this吗?还没有?
关于c# - 引用同一程序集的不同版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/223195/