2016-07-13 12 views
5

Ich versuche, die Version 4.3.0 Release zu erstellen. Aber ich bekomme den bekannten Fehler:Kompilieren einer bestimmten Version von DotNetOpenAuth mit einer kleinen Änderung, signieren Probleme

Konnte Datei oder Assembly 'DotNetOpenAuth.Core' oder eine seiner Abhängigkeiten nicht laden. 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)

Ich habe mehrere Optionen ausprobiert, aber nicht geschafft.

Das Problem ist, dass ich mit einem OpenId-Anbieter verbinden muss und sie sagen mir, dass es nicht funktioniert, wenn ich protected string GetSignature Methode ändern.

Die Linie:

MessageDictionary dictionary = this.Channel.MessageDescriptions.GetAccessor(signedMessage); 

nach ihnen muss geändert werden:

MessageDictionary dictionary = this.Channel.MessageDescriptions.GetAccessor(signedMessage, true); 

In diesem question vorgeschlagen wurde, es erklärt werden könnte, wie es zu kompilieren. Könnte es noch jemand tun? Zahlreiche Google-Suchen führten mich nicht zu einer Lösung.

Jeder kann mir dabei helfen? Ich weiß, dass OpenId 2.0 jetzt veraltet ist, aber der Anbieter wird nicht in absehbarer Zeit zu Open Connect wechseln.

+0

Werfen Sie einen Blick auf diese http://stackoverflow.com/questions/20212035/how-to-fix-could-not-load-file-or-assembly-xxx-oder-one-of-its-its- Abhängigkeiten-st –

Antwort

0

Der obige Kommentar brachte mich nicht weiter.

Nach einigen weiteren Versuchen fand ich heraus, dass, da der private Teil fehlt, Signieren unmöglich wäre (duh).

Also habe ich beschlossen, einfach die Signatur zu entfernen, indem Sie die folgenden wahren Werte in allen csproj-Dateien auf false setzen. Schneller zu Masse ersetzen in Notepad ++ als Handbuch in allen Projekten in Visual Studio.

<PropertyGroup> 
    <SignAssembly>true</SignAssembly> 
</PropertyGroup> 
<PropertyGroup> 
    <DelaySign>true</DelaySign> 
</PropertyGroup> 

Die obigen Eigenschaften befinden sich unter dem Projektknoten.

Nach dem Entfernen konnte ich kompilieren und verteilen.

Wenn Sie dies über die Visual Studio IDE tun möchten, klicken Sie mit der rechten Maustaste auf Ihr Projekt und dann auf Eigenschaften, und wechseln Sie zur Registerkarte Signieren. Wende der Unterzeichnung.