Das Referenzierungsprojekt asp.net 3.5 mit Assemblyreferenz löst einen Signatur- / starken Namensfehler im Komponententest aus

StackOverflow https://stackoverflow.com/questions/4846718

Frage

Ich habe einen Verweis auf eine MySQL.Data 5.2.3-Assembly in einer Datenschicht, großartig. Ich habe derzeit eine kleine Konsolen-App mit derselben Lösung, die auf NUR DIESE Datenschicht verweist, die eine gute Verbindung herstellt. Ich habe dann ein Unit-Test-Projekt (auch in derselben Lösung) erstellt und auf dasselbe Datenschichtprojekt verwiesen. Daraus erhalte ich:

Testmethode LTTests.WrapperTest.LoginTest hat eine Ausnahme ausgelöst: System.IO.FileLoadException: Datei oder Assembly 'MySql.Data, Version= 5.2.3.0, Culture= neutral, PublicKeyToken= c5687fc88969c44d' oder eine von konnte nicht geladen werden seine Abhängigkeiten. Eine starke Namenssignatur konnte nicht überprüft werden. Die Assembly wurde möglicherweise manipuliert oder sie wurde verspätet signiert, aber nicht vollständig mit dem richtigen privaten Schlüssel signiert. (Ausnahme von HRESULT: 0x80131045).

Also versuche ich zu verstehen ... Ich kann dies für eine Konsolen-Exe tun und es funktioniert, aber kein Unit-Test? Das macht mich nervös, auf etwas aufzubauen, das anscheinend fehlerhaft ist, aber ich weiß nicht, was ich als nächstes tun soll. Ich bin verloren, ich habe verschiedene Dinge wieder hinzugefügt, um herauszufinden, was der Deal ist, und ich habe keine Ahnung.

Die Ausnahme ist von der Datenschicht und nicht vom Test (pro Stapel). Es ist also so, als würde der Test die Methode der Schicht (duh) aufrufen und die Datenschicht kotzt, aber nicht für die Konsole?

Danke.

War es hilfreich?

Lösung

Dies ist nicht die Antwort, warum ein Fehler vorliegt, sondern eine Möglichkeit, ihn herauszufinden:

Mit dem "Assembly Binding Log Viewer" (Fuslogvw.exe), der zum dotnet sdk gehört, können Sie herausfinden, was geladen wird und warum.

Wenn die Protokollierung aktiviert ist, können Sie sehen, welche Assemblys aus welchem Verzeichnis geladen wurden und welche Assembly sie geladen hat.

Weitere Informationen finden Sie unter http:// msdn.microsoft.com/en-us/library/e74a18c4(v=vs.80).aspx

Es kann also sein, dass verschiedene Versionen von MySql.Data herumliegen und die Fehlermeldung bedeutet, dass die gefundene Versionsnummer nicht die erwartete ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top