调试.NET程序集绑定,也可以找到所使用的dll以及原因

Ber*_*van 3 .net dll assemblybinding

我们在运行时加载的引用dll上存在一些神秘版本不匹配的情况。

错误如:

无法加载文件或程序集X或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自HRESULT的异常:0x80131040)

有什么方法可以调试程序集绑定。

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

  • 地点
  • 导致加载的原因/原因(我的代码,另一个.dll等)
  • 好吧,还有其他所有要知道的...

Chr*_*ich 5

大会绑定日志查看这些各种各样的问题如(又名融合日志查看器,fuslogvw.exe)显示有用的数据:

  • 什么程序试图加载程序集
  • 程序集的全名(版本,文化,公钥令牌)
  • 导致负载的程序集
  • 为组装探测了哪些路径

您可以记录所有绑定,也可以仅记录绑定失败。

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