【发布时间】:2010-09-18 09:38:22
【问题描述】:
如果 A 引用程序集 B 1.1 和 C,而 C 引用 B 1.2,如何避免程序集冲突?
我曾假设 C 的引用会被封装掉,不会引起任何问题,但似乎所有 dll 都被复制到了 bin 中,这就是问题发生的地方。
我了解解决此问题的两种方法是使用 GAC 或程序集绑定? GAC 对我来说似乎不是最好的方法,因为我不喜欢假设 dll 会在那里,我更喜欢在我的解决方案中从 lib 目录中引用 dll。
在我看来,程序集绑定并不可靠,如果程序集的一个版本具有另一个版本没有的功能,这不会产生问题吗?
在我的情况下,这是因为我使用的是 3rd 方 dll,使用的是旧版本的 nHibernate,而不是我自己使用的。
【问题讨论】:
-
我认为您的标题中有错字。 “相同的不同”应该只是“不同的”。 :)
标签: c# dll build-process assemblies versioning