我下载了MySQL Connector / Net 6.7.4和MySQL for Visual Studio 1.0.2,然后按照以下说明进行了测试:
运行该应用程序,我遇到了以下异常:
ConfigurationErrorsException :无法找到或加载已注册的.Net Framework数据提供程序。
然后,我在.NET 4.5项目中添加了对MySql.Data和MySql.Data.Entity库版本6.7.4.0的引用。现在,当我运行应用程序时,我得到了另一个异常:
MySql.Data
MySql.Data.Entity
FileLoadException :无法加载文件或程序集’MySql.Data,版本= 6.6.5.0,区域性=中性,PublicKeyToken = c5687fc88969c44d’或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自HRESULT的异常:0x80131040)
注意版本号,它不是我安装的MySQL Connector的版本。
我如何使其正常工作?
解决这个问题的技巧是:
machine.config
6.6.5.0
6.7.4.0
对于第二步,请注意有多个machine.config文件,每个文件分别对应一个框架版本(3.0、3.5、4.0)和体系结构(32位,64位)。另请注意,machine.config.NET 4.5 的文件位于.NET 4.0文件夹中。您可以machine.config在以下位置找到文件:
C:\ Windows \ Microsoft.NET \ Framework \\ Config
和:
C:\ Windows \ Microsoft.NET \ Framework64 \\ Config
如果machine.config文件中没有对MySQL的引用,则可能未安装MySQL for Visual Studio。要么这样做,要么将以下内容添加到app.config您的项目文件中:
app.config
<system.data> <DbProviderFactories> <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.7.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> </DbProviderFactories> </system.data>
但是请注意,当您同时安装上述代码段MySQL for Visual Studio 并将其 添加到app.config文件中时,将出现此异常:
MySQL for Visual Studio
ConfigurationErrorsException :列’InvariantName’被限制为唯一。值’MySql.Data.MySqlClient’已经存在。