MySQL-Connector 6.7.4 und Entity Framework 5 Ausnahmen

8

Ich habe MySQL Connector / Net 6.7.4 heruntergeladen und MySQL für Visual Studio 1.0.2 , gefolgt von diese Anweisungen , um es zu testen:

  1. Erstellen Sie eine Verbindung zur vorhandenen MySQL-Datenbank.
  2. Erstellen Sie eine Konsolenanwendung.
  3. Fügen Sie das ADO.NET-Entitätsdatenmodell aus der vorhandenen Datenbankverbindung hinzu.
  4. Fügen Sie Codegenerierungselement EF 5.x DbContext Generator hinzu, das die .tt-Dateien ersetzt.
  5. Schreiben Sie Code, der Datensätze aus der Datenbank abgerufen hat.

Beim Ausführen der Anwendung habe ich folgende Ausnahme:

  

ConfigurationErrorsException : Der registrierte .Net Framework Data Provider konnte nicht gefunden oder geladen werden.

Dann habe ich Referenzen zu den MySql.Data und MySql.Data.Entity Bibliotheken Version 6.7.4.0 zu meinem .NET 4.5 Projekt hinzugefügt. Jetzt, wenn ich die Anwendung ausführe, bekomme ich eine andere Ausnahme:

  

FileLoadException : Datei oder Assembly 'MySql.Data, Version = 6.6.5.0, culture = neutral, PublicKeyToken = c5687fc88969c44d' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Die Manifestdefinition der lokalisierten Assembly stimmt nicht mit der Assemblyreferenz überein. (Ausnahme von HRESULT: 0x80131040)

Beachten Sie die Versionsnummer, die nicht die Version von MySQL Connector ist, die ich installiert habe.

Wie bekomme ich es richtig funktioniert?

    
Virtlink 18.09.2013, 20:57
quelle

5 Antworten

14

Der Trick, dies zu lösen, war:

  1. Fügen Sie Verweise auf die Bibliotheken MySql.Data und MySql.Data.Entity der richtigen Version (in meinem Fall 6.7.4.0 für .NET 4.5) zum Projekt hinzu.
  2. Bearbeiten Sie machine.config mit Ihrem Editor als Administrator und ersetzen Sie alle Vorkommen der MySQL-Version 6.6.5.0 by 6.7.4.0 .

Beachten Sie für den zweiten Schritt, dass es mehrere machine.config -Dateien gibt, eine für jede Framework-Version (3.0, 3.5, 4.0) und jede Architektur (32-Bit, 64-Bit). Beachten Sie auch, dass sich die machine.config -Datei für .NET 4.5 im .NET 4.0-Ordner befindet. Sie finden die machine.config Dateien in:

  

C: \ Windows \ Microsoft.NET \ Framework \\ Konfig

Und:

  

C: \ Windows \ Microsoft.NET \ Framework64 \\ Konfig

Wenn in der Datei machine.config keine Verweise auf MySQL vorhanden sind, wurde MySQL für Visual Studio . Tun Sie das, oder fügen Sie Folgendes zur Datei app.config Ihres Projekts hinzu:

%Vor%

Beachten Sie jedoch, dass Sie bei der Installation von MySQL for Visual Studio und das obige Snippet zu Ihrer app.config -Datei hinzufügen, dann erhalten Sie diese Ausnahme:

  

ConfigurationErrorsException : Die Spalte 'InvariantName' ist so eingeschränkt, dass sie eindeutig ist. Wert 'MySql.Data.MySqlClient' ist bereits vorhanden.

    
Virtlink 18.09.2013, 20:57
quelle
6

Ich mag es nicht, machine.config zu bearbeiten. Fügen Sie diese Umleitung einfach web.config hinzu:

%Vor%     
Der_Meister 11.11.2013 04:39
quelle
5

Dies sollte die Ausnahme stoppen, die Virtlink erwähnt hat:

%Vor%

Beachten Sie besonders die <remove name="MySQL Data Provider" /> -Zeile.

    
Duffy 23.10.2013 18:26
quelle
1

Laden Sie MYSQL 6.7.4.0 von HERE herunter. Beachten Sie, dass Ihr spezifisches Problem 6.7.4.0 und keine andere Version erfordert!

Direkter Link ist dies .

Laden Sie die Dateien herunter und fügen Sie sie dem Referenzordner Ihrer Lösung hinzu.

Das würde wahrscheinlich dein Problem lösen (hat es für mich getan, und ja, ich weiß das kann durch ein sehr nerviges Problem).

Viel Glück:)

    
ron 18.04.2014 07:04
quelle
0

Ich weiß, dass dieser Thread 2013 eine Antwort hatte, aber ich bin gerade wieder auf dieses Problem gestoßen. In meiner Situation habe ich kürzlich das Windows 10 Anniversary Update installiert. Hatte vorher kein Problem.

Wie aus den obigen Antworten hervorgeht, wurde meine Machine.config-Datei überschrieben (ich vermute durch das Update).

Nachdem ich die MySql Assembly-Informationen in der Datei "Machine.config" wiederhergestellt habe, hat sie sofort wieder funktioniert.

Insbesondere die Abschnitte "Runtime" und "DbProviderFactories" wurden gelöscht und mussten ersetzt werden. Sie waren wie folgt (diese variieren je nach den Versionen der Baugruppen, die Sie verwenden):

Laufzeitabschnitt:

%Vor%

Abschnitt DbProviderFactories

%Vor%

Ich hoffe, dies hilft anderen, das gleiche Problem zu finden.

    
David 30.09.2016 23:42
quelle

Tags und Links