我如何找到导致错误的 dll?

我如何找到导致错误的 dll?

背景:

安装了 SQL Server 2012 数据工具和 Visual Studio 2010 和 2012 的 Windows 7。

尝试在 Visual Studio 中创建一个新的 SSIS 项目时出现以下错误:

Microsoft.DataTransformationServices.Project.SharedIcons 的类型初始化程序引发了异常 我几乎可以肯定这是由 C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies 中的不正确的 dll 引起的

问题:有没有办法可以追踪应用程序在运行时加载了哪些 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 的问题,而是使用 VS 作为 shell 的 SSDT-BI 的问题,但没有 SSDT-BI 的 SU 标签。

答案1

这篇博文Scott Hanselman 有几种调试程序集加载错误的技术。我推荐融合日志方法或进程探索器方法。

如果您安装了 Visual Studio,则应安装程序集绑定日志查看器 (Fusion Log Viewer)。它是作为 Windows SDK 的一部分安装的。在我的计算机上,路径是:c:\program files (x86)\microsoft sdks\windows\v8.0a\bin\NETFX 4.0 Tools\FUSLOGVW.exe 从“设置”按钮,您可以启用“将所有绑定记录到磁盘”以启用日志记录。

一旦启用日志记录,创建错误并单击“刷新”以查看已加载的所有程序集。

相关内容