Wie finde ich heraus, welche DLL einen Fehler verursacht?

Wie finde ich heraus, welche DLL einen Fehler verursacht?

Hintergrund:

Windows 7 mit installiertem SQL Server 2012 Data Tools und Visual Studio 2010 und 2012.

Beim Versuch, in Visual Studio ein neues SSIS-Projekt zu erstellen, wird die folgende Fehlermeldung angezeigt:

Der Typinitialisierer für Microsoft.DataTransformationServices.Project.SharedIcons hat eine Ausnahme ausgelöst. Ich bin fast sicher, dass dies durch eine falsche DLL in C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies verursacht wird

Frage: Gibt es eine Möglichkeit, nachzuverfolgen, welche DLLs zur Laufzeit von einer Anwendung geladen werden?

Ich habe auch versucht:

C:>Taskliste /m /fi "Bildname eq devenv.exe "

bekomme aber nur das relativ wenig hilfreiche Ergebnis:

Image Name                     PID Modules
========================= ======== ============================================
devenv.exe                    2784 ntdll.dll, wow64.dll, wow64win.dll,
                                   wow64cpu.dll
devenv.exe                    6836 ntdll.dll, wow64.dll, wow64win.dll,
                                   wow64cpu.dll

Mir ist auch bewusst, dass dies kein Visual Studio-Problem ist, sondern eines mit SSDT-BI, das VS als Shell verwendet, aber es gibt kein SU-Tag für SSDT-BI.

Antwort1

Dieser Blog-Beitragvon Scott Hanselman bietet mehrere Techniken zum Debuggen von Assembly-Ladefehlern. Ich empfehle sowohl dieFusionsprotokollAnsatz oder dieProcess ExplorerAnsatz.

Der Assembly Binding Log Viewer (Fusion Log Viewer) sollte installiert sein, wenn Sie Visual Studio installiert haben. Er wird als Teil des Windows SDK installiert. Auf meinem Rechner lautet der Pfad: c:\program files (x86)\microsoft sdks\windows\v8.0a\bin\NETFX 4.0 Tools\FUSLOGVW.exe Über die Schaltfläche „Einstellungen“ können Sie „Alle Bindungen auf Datenträger protokollieren“ aktivieren, um die Protokollierung zu aktivieren.

Sobald die Protokollierung aktiviert ist, erstellen Sie den Fehler und klicken Sie auf „Aktualisieren“, um alle geladenen Assemblys anzuzeigen.

verwandte Informationen