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:
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?
Der Trick, dies zu lösen, war:
MySql.Data
und MySql.Data.Entity
der richtigen Version (in meinem Fall 6.7.4.0 für .NET 4.5) zum Projekt hinzu. 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 app.config
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.
Ich mag es nicht, machine.config zu bearbeiten. Fügen Sie diese Umleitung einfach web.config hinzu:
%Vor%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:)
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.
Tags und Links .net c# entity-framework mysql