2017-08-19 1 views
0

Fehler:.net Datei oder Assembly MySql.Data konnte nicht geladen werden. Starke Namen Validierung fehlgeschlagen (0x8013141A)

An unhandled exception of type 'System.IO.FileLoadException' occurred in WindowsFormsApplication4.exe 
Additional information: Could not load file or assembly 'MySql.Data, Version=8.0.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' or one of its dependencies. Strong name validation failed. (Exception from HRESULT: 0x8013141A) 

Information:

  • Visual Studio 2015
  • Windows-10 - x64
  • C#
  • MySQL 6.9. 9

Problem:

ich eine Klassenbibliothek mit MySQL gemacht habe verschiedene Anfragen an meine Online-Datenbank auszuführen.

Nachdem die DLL in meinem eigenen Projekt, einschließlich der einzigen Zeile Code Ich verwende ist die folgende: (was die Ausnahme auf Würfe)

// Runs a simple select statement to find matches for 'John Doe' in my online MySQL database table... and stores results to a dataset 
DataSet ds = MyDllNameSpace.Database.People.Load("John", "Doe"); 

App.Config Dateien:

My-dLL-Projekt: (ich habe dieses Projekt nicht unterschreiben)

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 

<system.data> 
    <DbProviderFactories> 
     <remove invariant="MySql.Data.MySqlClient" /> 
     <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=8.0.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> 
    </DbProviderFactories> 
    </system.data></configuration> 

Mein separ aß Projekt: (Ich habe dieses Projekt nicht unterschreiben)

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <startup> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> 
    </startup> 


    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-8.0.8.0" newVersion="8.0.8.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 

Was ich habe gesucht/versucht:

  • stellte sicher, dass die gleiche Version von MySQL in beiden Projekten verwenden
  • Setzen Sie die DLL auf meine Bibliothek und MySQL in den Ordner Bin meines separaten Projekts und fügen Sie sie als Referenz
  • Auch versucht, beide dlls meiner Bibliothek und MySQL zu den separ hinzufügen ate Projekt und Auswahl "immer kopieren"
  • Ändern der App.config-Datei (vorausgesetzt, das Problem ist hier drin?)
  • Zuletzt habe ich versucht, sowohl das DLL-Projekt und das Projekt mit der DLL mit dem gleichen Passwort zu signieren (Überprüfung unterschreiben die Versammlung). Dies hat auch nichts bewirkt. :(

Danke

+0

** Nach Stunden des Versuchens, das Problem herauszufinden ... es stellt sich heraus, es war wegen der Verwendung der neuesten Prelease ver sion von MySql.Data im Paket-Manager.Nach dem Wechsel auf die neueste STABLE-Version funktionierte alles einwandfrei. ** –

Antwort

0

Haben Sie versucht, das Projekt Unterzeichnung (en), die Ihre Fehler entfernen

Vielleicht Link zu Ihrem Fehler helfen:?. https://blogs.msdn.microsoft.com/keithmg/2012/03/20/strong-name-validation-failed-exception-from-hresult-0x8013141a/

oder diese stackoverflow Frage: Strong Name Validation Failed

+0

Ja, ich habe vergessen, das zu erwähnen. Ich habe versucht, das DLL-Projekt zu signieren, sowie das Projekt, das die DLL verwendet (beide mit dem gleichen Passwort). Es ist das erste Mal, dass ich ein Projekt unterschreibe, also habe ich hoffentlich nichts Dummes getan, um das zu verursachen. Ich werde diese Links überprüfen, aber ich denke, ich habe schon über diese nachgedacht. Danke für deine Antwort –

Verwandte Themen