Как узнать, какая именно DLL-библиотека вызывает ошибку?

Как узнать, какая именно DLL-библиотека вызывает ошибку?

Фон:

Windows 7 с установленными SQL Server 2012 Data Tools и Visual Studio 2010 и 2012.

При попытке создать новый проект SSIS в Visual Studio возникает следующая ошибка:

Инициализатор типа для Microsoft.DataTransformationServices.Project.SharedIcons выдал исключение Я почти уверен, что это вызвано неправильной dll в C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies

Вопрос: Есть ли способ отследить, какие библиотеки DLL загружаются приложением во время выполнения?

Я также попробовал:

C:>tasklist /m /fi "имя_образа eq devenv.exe "

но получите лишь относительно бесполезный результат:

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

Кроме того, я знаю, что это проблема не Visual Studio, а SSDT-BI, который использует VS в качестве оболочки, но тега SU для SSDT-BI нет.

решение1

Этот пост в блогеот Скотта Хансельмана есть несколько методов отладки ошибок загрузки сборки. Я бы рекомендовал обаЖурнал слиянияподход илиОбозреватель процессовподход.

Assembly Binding Log Viewer (Fusion Log Viewer) должен быть установлен, если у вас установлена ​​Visual Studio. Он устанавливается как часть Windows SDK. На моем компьютере путь такой: c:\program files (x86)\microsoft sdks\windows\v8.0a\bin\NETFX 4.0 Tools\FUSLOGVW.exe С помощью кнопки «Настройки» вы можете включить «Записывать все привязки на диск», чтобы включить журналирование.

После включения ведения журнала создайте ошибку и нажмите «Обновить», чтобы увидеть все загруженные сборки.

Связанный контент