调试.NET程序集绑定又名查找DLL什么用,为什么绑定、又名、什么用、程序

2023-09-04 04:47:38 作者:墨兮

我们正在对我们引用的DLL运行时加载一些神秘的版本不匹配。

We're having some mystery version mismatches on our referenced dll's loaded at runtime.

这样的错误:

无法加载文件或程序集X或它的一个依赖。找到的程序集清单定义不匹配的程序集引用。 (从HRESULT异常:0x80131040)

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)

有什么办法组装调试结合。

Is there any way to debug the assembly binding.

在换句话说,我怎么能知道加载的程序集以下细节:

In other words, how can I know the following details about loaded assemblies:

版本 位置 谁/什么原因造成的负荷(我的code,另外一个.dll文件,...) 好了,只是一切有知道...

推荐答案

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

The Assembly Binding Log Viewer (aka Fusion Log Viewer, fuslogvw.exe) shows useful data for these sorts of issues such as:

在什么样的流程正在试图加载程序集 的组件(版本,区域性,公钥标记)的完整名称 这是造成负载的组件 在哪些路径进行探查组装

您可以记录所有绑定或只是绑定失败。

You can log all binds or just bind failures.

fuslogvw.exe应便于直接从任何VS命令提示符。

fuslogvw.exe should be accessible directly from any VS command prompt.