在我的项目中,我使用了两个不同的第三方组件。我无权访问这些组件的源代码。
每个组件都引用同一个 DLL 程序集 log4net 的不同版本。
特别是组件 A 引用 log4net 版本 1.2.9.0,而组件 B 引用 log4net 版本 1.2.10.0。
在 VS2012 中,我目前正在将两个第三方组件 DLL 添加到我的项目的引用中,并且我应该添加对 log4net 的引用。
我尝试了以下方法:
1) 添加对 log4net 1.2.9.0 的引用:代码编译但在运行时出现异常“无法加载文件或程序集 [...] log4net,版本 = 1.2.10.0 [...]”
2) 添加对 log4net 1.2.10.0 的引用:代码编译但在运行时出现异常“无法加载文件或程序集 [...] log4net,版本 = 1.2.10.0 [...]”
3) 将 log4net.dll 版本 1.2.9.0 重命名为 log4netOld.dll 并将版本 1.2.9.0 和 1.2.10.0 添加到项目引用中:在编译期间,我收到一个预期的警告,告知存在命名空间冲突,并且编译器使用 1.2.10.0 解析类型,因此在运行时我遇到与第 2 点相同的问题 -> 代码编译但在运行时出现异常“无法加载文件或程序集 [...] log4net,版本 = 1.2.10.0 [ ...]”
我不是所有参考属性的专家,我们当前对所有参考的设置是:
1) 别名:全局
2)复制本地:真
3) 嵌入互操作类型:false
关于如何解决问题的任何想法?