我们在运行时加载的引用 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/