Мое предположение всегда заключалось в том, что среда CLR загружала все DLL файлы, необходимые для запуска домена приложения. Однако я написал пример, который заставляет меня подвергнуть сомнению это предположение. Я запускаю свое приложение и проверяю, сколько модулей загружено.
Process[] ObjModulesList;
ProcessModuleCollection ObjModulesOrig;
//Get all modules inside the process
ObjModulesList = Process.GetProcessesByName("MyProcessName");
// Populate the module collection.
ObjModulesOrig = ObjModulesList[0].Modules;
Console.WriteLine(ObjModulesOrig.Count.ToString());
Затем я повторяю тот же самый код, и мой счет отличается. Дополнительная DLL - C:\WINNT\system32\version.dll.
Я действительно смущен, почему подсчеты будут разными.
Разве кто-то может рассказать о том, что делает CLR и как он загружает эту вещь, и по какой логике она это делает?