.net - 调试 .NET 程序集绑定(bind)又名查找使用的 dll 以及原因

标签 .net dll assemblybinding

我们在运行时加载的引用 dll 上遇到了一些神秘的版本不匹配问题。

错误如下:

Could not load file or assembly X or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

有没有办法调试程序集绑定(bind)。

换句话说,我如何才能知道有关加载的程序集的以下详细信息:

  • 版本
  • 地点
  • 谁/什么导致了加载(我的代码、另一个 .dll,...)
  • 好吧,几乎所有其他事情都需要知道......

最佳答案

Assembly Binding Log Viewer (又名 Fusion Log Viewer,fuslogvw.exe)显示此类问题的有用数据,例如:

  • 哪个进程正在尝试加载程序集
  • 程序集的全名(版本、区域性、公钥 token )
  • 引起负载的程序集
  • 探测了程序集的哪些路径

您可以记录所有绑定(bind)或仅记录绑定(bind)失败。

fuslogvw.exe 应该可以从任何 VS 命令提示符直接访问。

关于.net - 调试 .NET 程序集绑定(bind)又名查找使用的 dll 以及原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4679279/

相关文章:

c# - 可靠地将类型符号 (ITypeSymbol) 与 Roslyn 进行比较

.net - 当我只有一张物理光盘时,如何获得 DVD 标题?

c# - .NET 中的元数据是什么?

c++ - 分析 DLL/LIB 膨胀

c# - 在运行 T4 模板以在解决方案中包含程序集时确定解决方案配置(调试/发布)

windows - 转到异常 "signal arrived during cgo execution"

c# - ConfigurationManager.OpenMappedExeConfiguration.GetSection() 失败(最近才开始发生)

c# - WindowsImpersonationContext 下的程序集绑定(bind)。如何防止 FileLoadException?

c# - .NET:通过项目配置不同的目标框架