昨天我安装了MySql 5.7
,它包含MySql connector / net。但是今天当我运行MVC4应用程序时,会发生错误。服务器显示无法找到dll MySql.Web.v20, Version=6.9.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d
,或者系统找不到此文件。
在MySQLMembershipProvider
和MySQLRoleProvider
等部分,mysql安装程序更改了machine.config。
你能告诉我这是什么问题以及如何解决它?
答案 0 :(得分:0)
我猜这只是一个dll版本和/或PublicKeyToken不匹配。只需删除对MySql Connector dll的引用,然后重新添加即可。
如果错误仍然存在,请查看此dll的属性,获取其PublicKeyToken,搜索指向此引用的xml代码(我现在不记得在哪里,但您将能够轻松找到查找Visual Studio工具并设置每个属性以匹配您已安装的新dll。
(在进行任何更改之前进行备份(甚至是简单的Ctrl + C> Ctrl + V>注释)是一件非常好的事情)
希望它有所帮助!
答案 1 :(得分:0)
答案在某种程度上是愚蠢的,但它就像一个魅力(至少在我的情况下)。
正如您所看到的,它正在寻找名为" MySql.Web.v20.dll"的东西。 " MySql.Web.v20.dll"是完全正常的。 =" MySql.Web.dll"但事实并非如此。
看看这个文件夹:" C:\ Program Files(x86)\ MySQL \ Connector.NET 6.9 \ Assemblies"
在那里我有4个文件夹,RT,v2.0,v4.0和v4.5。当你查看它们中的任何一个时,你会看到它们都包含名为MySql.Web.dll的文件,但只有文件夹v2.0包含MySql.Web.v20.dll。
现在看一下VS Reference Manager。在mysql的过滤器类型中,结果非常有意义。我个人有5个MySql.Web条目。当您将鼠标悬停在每个上面时,它将显示该参考的绝对路径。其中只有一个实际上是MySql.Web.v20.dll。
它解决了我的问题。但我想知道为什么以及如何运作。欢呼声。