Wie kann ich die Protokollierung der Assembly-Bindung aktivieren?

Ich erhalte: "Die Datei oder Baugruppe 'Bla' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Es wurde versucht, ein Programm mit einem falschen Format zu laden."

Ein Teil der detaillierten Informationen besagt:

*"WRN: Die Protokollierung der Assemblerbindung ist ausgeschaltet. Um die Protokollierung von Assembly-Bindungsfehlern zu aktivieren, setzen Sie den Registrierungswert [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) auf 1. Hinweis: Die Protokollierung von Baugruppenbindungsfehlern ist mit einem gewissen Leistungsverlust verbunden. Um diese Funktion zu deaktivieren, entfernen Sie den Registrierungswert [HKLM\Software\Microsoft\Fusion!EnableLog].

In der Annahme, dass mir dies Aufschluss darüber geben könnte, warum ich die obige Fehlermeldung erhalte (vielleicht enthält das nächste YSOD genauere Informationen darüber, warum es fehlschlägt), habe ich zu diesem Ort in der Registrierung navigiert, aber es gibt keinen solchen Schlüssel, den ich sehen kann. Was es hat, ist:

\Fusion 
    (Default)   value not set
    \GACChangeNotification
    \NativeImagesIndex
    \PublisherPolicy

Was übersehe ich?

Lösung

Ein guter Ausgangspunkt für die Untersuchung einer fehlgeschlagenen Bindung ist die Verwendung des Dienstprogramms "fuslogvw.exe". Dies kann Ihnen die Informationen liefern, die Sie im Zusammenhang mit der fehlgeschlagenen Bindung benötigen, so dass Sie nicht mit den Registrierungswerten herumspielen müssen, um die Bindungsprotokollierung zu aktivieren.

Fuslogvw MSDN-Seite

Das Dienstprogramm sollte sich in Ihrem Microsoft SDKs-Ordner befinden, der je nach Betriebssystem etwa so aussieht: "C:\Programme (x86)\Microsoft SDKs\Windows\v{SDK-Version}A\Bin\FUSLOGVW.exe"

  1. Starten Sie dieses Dienstprogramm (es hat eine grafische Benutzeroberfläche) und setzen Sie die Einstellungen auf "Log bind failures to disk".

  2. Klicken Sie auf "Delete all", um die Liste aller früheren Bindungsfehler zu löschen.

  3. Reproduzieren Sie den Bindungsfehler in Ihrer Anwendung

  4. Klicken Sie im Dienstprogramm auf Refresh. Sie sollten nun den Bindungsfehler in der Liste sehen.

  5. Sie können Informationen über den Bindungsfehler anzeigen, indem Sie ihn in der Liste auswählen und auf "Protokoll anzeigen&quot klicken;

Das erste, wonach ich suche, ist der Pfad, in dem die Anwendung nach der Assembly sucht. Sie sollten sich auch vergewissern, dass die Versionsnummer der fraglichen Assembly den Erwartungen entspricht.

Kommentare (8)

Wenn Sie manchmal verschiedene Versionen Ihrer Anwendung laufen lassen, stellen Sie sicher, dass Sie 'Bla' aus dem bin-Verzeichnis der Anwendung löschen, wenn die laufende Version es nicht benötigt.

Kommentare (0)

Als ich das gleiche Problem hatte, löschte ich die vorhandene Datei "key.snk" in diesem Projekt und fügte einen neuen Schlüssel hinzu.

Kommentare (0)