ConfigurationErrorsException: Failed to find or load the registered .Net Framework Data Provider.
FileLoadException: Could not load file or assembly 'MySql.Data, Version=18.104.22.168,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)
The trick to solving this was:
MySql.Data.Entitylibraries of the correct version (22.214.171.124 for .NET 4.5, in my case) to the project.
machine.configwith your editor run as administrator, and replace all occurences of MySQL version
For the second step, note that there are multiple
machine.config files, one for each framework version (3.0, 3.5, 4.0) and architecture (32-bit, 64-bit). Also note that the
machine.config file for .NET 4.5 is in the .NET 4.0 folder. You can find the
machine.config files in:
If there are no references to MySQL in the
machine.config file, you might not have installed MySQL for Visual Studio. Either do that, or add the following to the
app.config file of your project:
<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=126.96.36.199, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> </DbProviderFactories> </system.data>
Note however, that when you both install
MySQL for Visual Studio and add the above snippet to your
app.config file, then you'll get this exception:
ConfigurationErrorsException: Column 'InvariantName' is constrained to be unique. Value 'MySql.Data.MySqlClient' is already present.