I know there is a mistake
No, this is not a mistake. This was a deliberate design change in CLR v4, Microsoft did not hide this in secret. Previous versions of the CLR made efforts to emulate loaded assemblies as if they were unmanaged DLLs. But that simply ceased to be clear when they implemented the parallel CLR versioning function on the process side. He left and will not return.
This is not a serious problem, since the list of loaded assemblies in another process is well supported by the debugging interface. ICorDebugAppDomain :: EnumerateAssemblies () is a ticket. Well, not as easy as Process.Modules. Use the MDbg sample to find out how to use it.
source share