2017-11-09 2 views
0

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=&quot;server=***;user id=***;password=***;database=***&quot;" 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! :/

+0

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 –

+0

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. –

+0

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. –

Antwort

0

[Duplicate] Conflicting versions of MySql.Data.dll in .Net project not allowing me to add/edit TableAdapters in my DataSets

musste ich einfach 6.9.10 den MySQL Connector deinstallieren Sie dann die 6.9.8.0 Version installieren, wie im doppelten Link oben meiner Antwort erklärt und ich habe hatte keine neue hinzufügen Verbindung, meine Grundlagen für die zwei verbundenen Projekte wurden gut angezeigt!

Dieser Link für frühere Versionen von MySql Connector ist ein Schmerz in den Arsch zu finden, meiner Meinung nach!

Aber jetzt bin ich so erleichtert, hoffen, dass dies einige andere helfen könnte: D

0

Ohne zu viel zu suchen. Es teilt Ihnen mit, dass die Assembly, die geladen werden soll, nicht mit der Version übereinstimmt, auf die in Ihrer Datei "application.config" verwiesen wird.

Um eine alternative Frage hier Referenz: The located assembly’s manifest definition with name xxx.dll does not match the assembly reference

Hoffnung, die hilft:

The .NET Assembly loader is unable to find 1.2.0.203, but did find a 1.2.0.200. This assembly does not match what was requested and therefore you get this error. In simple words, it can't find the assembly that was referenced. Make sure it can find the right assembly by putting it in the GAC or in the application path.

The located assembly's manifest definition does not match the assembly reference

Dies spiegelt sich auch in der anderen Antwort verknüpft.

+0

Die Sache ist, wie ich in meinem ersten Beitrag gesagt habe, dass dies keine gute Version ist, die es zu laden versucht, und diese Version ist nicht in irgendeiner meiner Konfigurationsdateien, wie Sie in meiner app.config auf meinem sehen können erster Beitrag. Ich möchte, dass Visual Studio 6.9.9.0 lädt und 6.9.8.0 aus irgendeinem obskuren Grund laden will. Irgendeine Idee ? –

+0

Ich sehe, sind Sie sicher, dass Sie überhaupt keinen Bezug darauf haben? Können Sie Ihre Verweise in Visual Studio oder im Global Assembly Cache überprüfen, muss es von irgendwo die falsche Version aufnehmen. Aus Interesse, haben Sie 6.9.8.0 in der Vergangenheit verwendet, ich würde auch Ihre Projekt "bin" und "obj" Ordner überprüfen und löschen. –

+0

Wo sind bitte bin und proj Verzeichnisse? –

Verwandte Themen