The located assembly's manifest definition does not match the assembly reference

 

将mysql.data.dll 从版本6.9.4.0换成6.5.4.0是遇到以下异常:

 

Could not load file or assembly 'MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

 

原因:

编译目录(debug或release)下的dll版本和.csproj中定义的版本不一致。

 

解决办法: 将debug或release下的dll版本换成与.csproj中定义的版本一致。

找到版本不一致的原因:比如多个.csproj引用了的相同的dll但是版本不一致。最后发现我有三个proj引用了MySql.Data但是版本不同,所以每次编译后就会有个csproj中的dll版本与实际copy的版本不一样。

 

更好的解决办法:

用GAC管理dll.

http://www.cnblogs.com/chenlulouis/archive/2010/06/30/1768176.html

http://stackoverflow.com/questions/215026/the-located-assemblys-manifest-definition-does-not-match-the-assembly-reference

https://msdn.microsoft.com/en-us/library/ex0ss12c%28VS.80%29.aspx  (GAC命令的用法)

我的电脑在目录C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools 下可以找到GACUtil.exe

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值