Ich versuche, eine neue MySql-Datenbankverbindung hinzuzufügen. Meine Version von MySql.Data ist 6.9.9.0 und wird in der App.config meines EFModel-Projekts und im Nuget-Paket-Manager des Projekts darauf verwiesen.Eroor "Datei oder Assembly MySql.data konnte nicht geladen werden" beim Versuch, eine neue Datenbankverbindung hinzuzufügen
Als ich es testen, wird die Verbindung mit meinem Server ist gut etabliert, aber wenn ich auf „OK“ klicken es zeigt einen Fehler:
"Could not load file or assembly 'MySql.data, Version=6.9.8.0, Culture=Neutral, PublicKeyToken=BigNumber' or one of his dependencies. The found definition of the assembly's manifest doesn't correspond to the reference of the assembly."
Das Problem ist, dass diese Version nicht in meiner Lösung geschrieben wird in irgendwelchen Konfigurationsdateien.
Hier ist meine app.config-Datei:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --></configSections>
<entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6">
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
</providers>
</entityFramework>
<connectionStrings>
<add name="UphairDbEntities" connectionString="metadata=res://*/DbModel.csdl|res://*/DbModel.ssdl|res://*/DbModel.msl;provider=MySql.Data.MySqlClient;provider connection string="server=***;user id=***;password=***;database=***"" providerName="Mysql.Data.MysqlClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient" name="MySQL Data Provider" />
<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.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.8.3.0" newVersion="6.8.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
ich für 3 Tage auf diesen zu kämpfen, konnte aber keine Lösung oder ähnliches Problem in SO oder Internet finden, da alle Fragen, die ich nicht gefunden wurden über das Hinzufügen einer neuen Verbindung zu einer Datenbank noch über die Version, die auf dem Fehler angezeigt wird, der nicht in app.config aufgeführt ist, was mein Fall ist. Ich verstehe wirklich nicht, was das bewirken kann.
Bitte helfen! :/
Für was es wert ist, ich bin noch weniger hilfreich Störung zu erhalten, wenn ich versuche, meine Lösung zu erstellen. Es sagt nur: MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity, Version = 6.10.5.0, Kultur = neutral, PublicKeyToken = c5687fc88969c44d Keine tatsächliche Fehlermeldung: nur das und der Projektname & Datei. Dies scheint ziemlich typisch für neuere Versionen von Visual Studio zu sein: Geben Sie einen "Fehler" an, der sich auf ein Symptom des Problems bezieht, anstatt irgendetwas, das Ihnen helfen könnte, das Problem selbst zu diagnostizieren. In meinem Fall benutze ich nur MySql mit EF, um Daten aus einer alten Datenbank zu migrieren –
Einige weitere Online-Forschung führte mich zu 2 mögliche Ursachen für mein Problem: (1), dass das Problem mit Entity Framework 6.2 war, und (2) dass es mit MySql.Data v6.10.5 und/oder MySql.Data.Entity v6.10.5 war. Nach dem Experimentieren mit wechselnden Versionen von beiden habe ich nun festgestellt, dass letzteres der Fall ist. Wenn ich EF auf 6.1 heruntergestuft habe und die MySql-DLLs bei Version 6.10.5 (oder 6.10.4) belassen habe, hat meine Software nicht funktioniert. Das Herunterstufen beider MySql-Pakete auf 6.9.10 gab mir jedoch eine funktionierende Lösung mit EF 6.1 oder 6.2. –
Aber mein Punkt über VS-Fehler steht. Ich habe viele Gelegenheiten gehabt, im letzten Jahr oder so, wo die Fehler, die daraus hervorgehen, wenn Dinge nicht aufgebaut oder eingesetzt werden, ziemlich nutzlos sind, um die zugrunde liegenden Ursachen der Probleme zu diagnostizieren. Wenn es nicht für Google und Websites wie stackoverflow wäre, wäre ich oft komplett auf See, ohne irgendwelche Hinweise. Dies ist kein guter Platz für eine IDE, die viel Geld kostet. –