C# 当用户单击.NET程序集(EXE)时会发生什么情况?
假设我们有.NET Winforms应用程序或控制台应用程序。C# 当用户单击.NET程序集(EXE)时会发生什么情况?,c#,.net,C#,.net,假设我们有.NET Winforms应用程序或控制台应用程序。 有谁能告诉我在WinForm或Console应用程序启动之前会发生什么。我想知道内部结构-比如EXE将如何与框架通信,CLR的作用是什么,在启动应用程序本身时发生异常时会发生什么。等等。您可能需要类似的内容:Microsoft.NET内部结构 或者因为它还没有发布:Essential.NET,第一卷:公共语言运行库 双击.net.exe程序集时: Windows的PE加载程序启动 如果您使用的是Windows>=Windows
有谁能告诉我在WinForm或Console应用程序启动之前会发生什么。我想知道内部结构-比如EXE将如何与框架通信,CLR的作用是什么,在启动应用程序本身时发生异常时会发生什么。等等。您可能需要类似的内容:Microsoft.NET内部结构 或者因为它还没有发布:Essential.NET,第一卷:公共语言运行库
双击.net.exe程序集时:
- Windows的PE加载程序启动
- 如果您使用的是Windows>=Windows XP,它将检测到该可执行文件是托管可执行文件,并通过调用mscoree.dll中的_coreexmain将其转发到.net(如果双击托管.dll,则为_CoreDllMain)。它可以使用程序集配置文件来知道要使用哪个运行时
- 如果您使用的是Windows
- 然后,mscoree.dll根据全局配置、程序集配置文件等初始化.net运行时
- 然后,如果它是.exe,它将JIT编译其入口点方法,并开始执行它
a、 所有用户二进制文件.exe、DLL在此处加载作为stakoverflow的答案?有数百页长的相关书籍;)@TomTom-这不太公平!…这些是简略版本。1.下载Mono。2.编译。3.在调试器下启动。4.单步。5.重复步骤4。嗨,Sathish,你能要求更多信息,还是接受答案?这太好了。谢谢你的回答!谢谢你,ho。我会查这些书的