您的位置:首页 > Web前端

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

2017-07-13 11:25 375 查看
 

将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

 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐