![我如何找到导致错误的 dll?](https://linux22.com/image/1388363/%E6%88%91%E5%A6%82%E4%BD%95%E6%89%BE%E5%88%B0%E5%AF%BC%E8%87%B4%E9%94%99%E8%AF%AF%E7%9A%84%20dll%EF%BC%9F.png)
背景:
安装了 SQL Server 2012 数据工具和 Visual Studio 2010 和 2012 的 Windows 7。
尝试在 Visual Studio 中创建一个新的 SSIS 项目时出现以下错误:
我几乎可以肯定这是由 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
从“设置”按钮,您可以启用“将所有绑定记录到磁盘”以启用日志记录。
一旦启用日志记录,创建错误并单击“刷新”以查看已加载的所有程序集。