SGEN: Fehler: Datei oder Assembly konnte nicht geladen werden (Ausnahme von HRESULT: 0x8013141A)

7

VS 2010, win Server 2003, .Net 3.5 Lösung, die von .Net 1.1 migriert wurden

Alle Projekte in Lösung sind mit Vorzeichen versehen. Die Lösung kann erfolgreich für den Debug-Modus erstellt werden, ist jedoch immer mit dem folgenden Fehler fehlgeschlagen. SGEN: Fehler: Konnte Datei oder Assembly nicht laden 'AssemblingX , Version = 1.0.5000.0, Culture = neutral, PublicKeyToken = xxxxxxxx' oder eine seiner Abhängigkeiten. Starke Namensvalidierung fehlgeschlagen. (Ausnahme von HRESULT: 0x8013141A)

Das AssemblingX ist das Projekt, das ich erstellen möchte. Alle referenzierten DLLs dieses Projekts werden im lokalen Ordner gespeichert und bereits signiert. Wenn ich die Eigenschaft des Projekts AssemblingX ändere, um sie zu signieren, kann die Lösung für die Freigabe erfolgreich erstellt werden.

Ich habe eine sgen.exe.config erstellt, um "loadFromRemoteSources" zu aktivieren, indem ich den Anweisungen auf Ссылка

Aber nichts hat sich geändert. Irgendwelche Ideen?

Danke

    
Yadong 23.08.2012, 21:10
quelle

5 Antworten

17

Dieses Problem hängt mit der starken Namensvalidierung zusammen. Öffnen Sie Ihre AssemblyX in Ildasm.exe (C: \ Programme (x86) \ Microsoft SDKs \ Windows \ v7.0A \ bin). Beachte sein PublicKeyToken , sagen wir pkt123 für ein Beispiel. Öffnen Sie jetzt die VS-Eingabeaufforderung im Administratormodus, und führen Sie den Befehl "sn.exe" aus. Wie:

%Vor%

Bauen Sie Ihre Lösung wieder auf und alles sollte jetzt in Ordnung sein.

Aber wenn nicht und Sie erhalten denselben Fehler jetzt auch, dann müssen Sie eine andere Version von sn.exe ausführen. Um dies zu finden, wechseln Sie zur Visual Studio-Eingabeaufforderung.

%Vor%

Es kann 5-10 Sekunden dauern und sollte eine Liste von sn.exe Dateien geben. Gehe zum Pfad und führe die sn.exe aus, die benötigt wird oder dir gehört, wie oben gezeigt. Wenn Sie nicht sicher sind, welche ausgeführt werden soll, führen Sie alle sn.exe aus. Das sollte und muss Ihr Problem lösen. Wenn nicht, lassen Sie es mich wissen und lassen Sie mich den RnD erneut vortragen.

    
Sandy 22.10.2012, 10:10
quelle
4

Da ich nicht in der Lage bin, die einzige Antwort zu diesem Thema zu kommentieren, wollte ich sicherstellen, dass andere Benutzer, die auf diese Antwort kamen, nicht die gleichen Fehler machen wie andere. Laut der MSDN-Dokumentation für das Dienstprogramm für starke Benennungen kann die Verwendung des Vr-Schalters (Signature Skipping) dazu führen, dass bösartige Assemblys geladen werden und nur in DEVELOPMENT, nicht in Deployment, verwendet werden sollten.

Ссылка

    
mW00t 13.05.2013 18:52
quelle
1

In meinem Fall war der Grund, dass die native Bibliothek in einem anderen Ordner als der Rest der Anwendung erstellt wurde.

    
qub1n 13.12.2014 20:16
quelle
1

Öffnen Sie cmd.

%Vor%

Ausführen :

sn –Vr **AssemblingX** name (without dll extension), **PublicKeyToken**

(der Code)

Erstellen Sie die Lösung neu. Und es sollte gelöst werden.

    
user2190799 18.11.2015 15:36
quelle
0

Wenn Sie immer noch nicht aufgelöst haben, müssen Sie AllowStrongNameBypass (DWORD) im Schlüssel

auf "1" setzen %Vor%

Auf 64-Bit-Computern

%Vor%

und

%Vor%     
ewwink 24.08.2013 14:59
quelle