我们在运行时加载的引用 dll 上有一些神秘的版本不匹配。
像这样的错误:
无法加载文件或程序集 X 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)
有没有办法调试程序集绑定。
换句话说,我如何知道有关已加载程序集的以下详细信息:
- 版本
- 地点
- 谁/什么导致了加载(我的代码,另一个 .dll,...)
- 好吧,几乎所有其他事情都需要知道......
我们在运行时加载的引用 dll 上有一些神秘的版本不匹配。
像这样的错误:
无法加载文件或程序集 X 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)
有没有办法调试程序集绑定。
换句话说,我如何知道有关已加载程序集的以下详细信息:
程序集绑定日志查看器(又名 Fusion 日志查看器,fuslogvw.exe)显示这些问题的有用数据,例如:
您可以记录所有绑定或仅记录绑定失败。
fuslogvw.exe 应该可以直接从任何 VS 命令提示符访问。
完全同意 Chris,Assembly Binding Log Viewer应该为您提供所需的所有信息。此外,您还可以使用 WinDbg + SOS.dll。大多数情况下,它用于调试,但在您需要了解尽可能多的信息时,它在其他一些情况下会非常有用。唯一可以阻止你的问题是它没有像 VS 调试器这样好的 UI :)
祝你好运!