Depurar el enlace de ensamblado .NET, también conocido como Buscar qué dll se usa y por qué

Tenemos algunos desajustes de versiones misteriosas en nuestros archivos DLL referenciados cargados en tiempo de ejecución.

Errores como:

No se pudo cargar el archivo o ensamblado X o una de sus dependencias. La definición de manifiesto del ensamblado ubicado no coincide con la referencia del ensamblado. (Excepción de HRESULT: 0x80131040)

¿Hay alguna forma de depurar el enlace de ensamblado?

En otras palabras, ¿cómo puedo conocer los siguientes detalles sobre los ensamblados cargados:

VersiónUbicaciónQuién / Qué causó la carga (mi código, otro .dll, ...)Bueno, casi todo lo demás hay que saber ...

Respuestas a la pregunta(2)

Su respuesta a la pregunta