会发生什么事,当用户点击.NET程序集(EXE)?什么事、发生、程序、用户

2023-09-04 01:44:33 作者:没有实力就别有脾气

考虑我们的.NET WinForms应用程序或控制台应用程序。 谁能告诉我会发生什么,一步一步,直到在WinForm或控制台应用程序启动。我想知道的内部 - 怎么样的EXE将与框架沟通,什么是CLR的作用,如果异常会发生什么,同时推出应用程序了itself.etc ...

Consider we have .NET Winforms application or Console Application. Can anyone tell me what will happen step-by-step until the WinForm or Console Application is launched. I would like know the internals - like how EXE will communicate with Framework, what is the role of CLR, what happens in case of exception while launching applicaiton itself.etc...

推荐答案

当你双击一个.NET的.exe程序集:

When you double click on a .net .exe assembly:

在Windows的PE装载踢 如果您在Windows> = Windows XP中,将检测到可执行文件可执行的托管,并转发在mscoree.dll中调用_CoreExeMain到.NET(_CoreDllMain如果双击点击一个管理.DLL) 。它可以使用该组件的配置文件,以了解要使用的运行时间。 如果您使用的是Windows< Windows XP中,该.exe文件包含一个小型本土片code,将跳转到mscoree.dll中的_CoreExeMain或_CoreDllMain。 然后mscoree.dll中初始化.NET运行时,根据全局配置,装配的配置文件,并没有什么。 然后,如果它是一个.exe文件,将JIT编译的入口点方法,并开始执行它。