DotNetOpenAuth kompiliert nach Änderungen, gibt jedoch beim Ausführen eines Beispielprojekts eine Laufzeitausnahme aus

8

Ich habe den neuesten DotNetOpenAuth-Code von GitHub heruntergeladen und es konnte anfangs nicht erstellt werden. Ich habe das Problem behoben, indem ich folgendes ausgeführt habe:

%Vor%

hier gefunden:

Ссылка

Ich ging voran und habe einige Änderungen am Projekt DotNetOpenAuth.AspNet vorgenommen. Es kompiliert gut. Dann habe ich ein MVC 4 Webprojekt unter Samples erstellt, um meine Änderungen zu testen. Die Lösung wurde erneut kompiliert. Sobald ich jedoch auf Debugger klicke, bekomme ich den gelben ASP.NET-Bildschirm mit dem folgenden Fehler:

Die Datei oder Baugruppe 'DotNetOpenAuth.AspNet' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Starke Namens-Signatur konnte nicht verifiziert werden. Möglicherweise wurde die Assembly manipuliert oder es wurde eine Verzögerung signiert, aber nicht vollständig mit dem richtigen privaten Schlüssel signiert. (Ausnahme von HRESULT: 0x80131045)

Das MVC 4-Projekt wurde aus der leeren Vorlage erstellt, daher gibt es keinen Verweis auf Microsoft.Web.WebPages.OAuth

Was vermisse ich? Ich habe die restlichen Schritte im obigen Link abgeschlossen:

%Vor%

und änderte auch die Datei \ tools \ DotNetOpenAuth.props, speziell die Zeilen: 27,29,30 mit den neuen Werten

%Vor%     
epignosisx 25.10.2012, 02:22
quelle

1 Antwort

6

Das Ändern der Requisiten-Datei sollte nicht notwendig sein. Das Problem liegt wahrscheinlich darin, dass Sie sich auf einem 64-Bit-Computer befinden und der von Ihnen ausgeführte Befehl sn sich nur auf die 32-Bit-Registrierung auswirkt. Dann scheitern Sie zur Laufzeit, weil Sie die Website in der 64-Bit-Registrierung ausführen, in der der Eintrag zum Überspringen der Überprüfung nicht enthalten ist.

Der "richtige" Weg ist, das 64-Bit-Windows-SDK zu installieren, so dass Sie 64-Bit-sn.exe erhalten und diesen Befehl ebenfalls ausführen. Aber hier ist der schnelle und einfache Weg:

Überprüfen Sie den Wert Ihres Registrierungsschlüssels: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName\Verification\*,2780ccd10d57b246

und kopieren Sie den Schlüssel nach

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\StrongName\Verification\*,2780ccd10d57b246

Starten Sie anschließend alle relevanten Prozesse neu (MSBuild.exe, devenv.exe, iis, WebDAV oder was auch immer Ihre Website hostet und meldet den Fehler). Es sollte anfangen, für dich zu arbeiten.

    
Andrew Arnott 26.10.2012, 03:38
quelle