C# 引用DLL版本冲突

查看:313
本文介绍了C# 引用DLL版本冲突的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

已解决,到官网上下载旧key版本,然后再重定向即可。

手动引用两个版本的DLL错误的原因是我 publicKeyToken 大小写的问题(竟然没校验~~)

但我想不明白,这样搞如果依赖一多的话,甚至那个 publicKeyToken 都不统一的话,那管理起来不是会特别麻烦吗?

以下是原问题内容:

工程中要用到zookeeper,他依赖一个低版本的log4net,但是我想用高版本的log4net。

百度后发现可以使用 重定向程序集版本 来解决,但是实践后发现两个版本的 PublicKeyToken 还不一样!

这种情况该怎么办?只能拉代码重新生成一个吗?

再次尝试手动引用两个版本的DLL,其中一个用别名。

app.config 中增加 dependentAssembly

  <dependentAssembly>
      <assemblyIdentity name="log4net" publicKeyToken="1b44e1d426115821" culture="neutral" />
      <codeBase version="1.2.10.0" href="DLL/log4net_1.2.10.dll" />
  </dependentAssembly>
  <dependentAssembly>
      <assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
      <codeBase version="2.0.8.0" href="DLL/log4net_2.0.8.0.dll" />
  </dependentAssembly>

编译时候报:

warning MSB3243: 无法解决log4net, Version=2.0.8.0, Culture=neutral,
PublicKeyToken=669e0ddf0bb1aa2a与log4net, Version=1.2.10.0,
Culture=neutral, PublicKeyToken=1b44e1d426115821之间的冲突。正在随意选择log4net,
Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a。

启动报:

解决方案

已解决,到官网上下载旧key版本,然后再重定向即可。

手动引用两个版本的DLL错误的原因是我 publicKeyToken 大小写的问题(竟然没校验~~)

但我想不明白,这样搞如果依赖一多的话,甚至那个 publicKeyToken 都不统一的话,那管理起来不是会特别麻烦吗?

这篇关于C# 引用DLL版本冲突的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆