当您运行.NET可执行文件时(一步一步地运行到加载并运行程序的位置),会发生什么情况?

当您运行.NET可执行文件时(一步一步地运行到加载并运行程序的位置),会发生什么情况?,.net,process,clr,runtime,.net,Process,Clr,Runtime,当您运行.NET可执行文件时,将按顺序一步一步地执行具体操作。我的基本理解是,您运行可执行文件,CLR进行一些检查,将CIL编译成特定于平台的代码,将其与指定的必需dll(如清单中所指定的)一起加载,然后运行您的程序 有人能详细说明一下这个,直到“它为这个和那个分配内存”级别吗?我很想知道从双击可执行文件到程序成功运行的过程 p.S.图表、外部链接(欢迎使用):-) 这些信息不容易获取是有原因的——因为微软已经了解到,一旦你发布了任何内容,它就会突然保持固定不变(来源:90%的用户) ECMA标

当您运行.NET可执行文件时,将按顺序一步一步地执行具体操作。我的基本理解是,您运行可执行文件,CLR进行一些检查,将CIL编译成特定于平台的代码,将其与指定的必需dll(如清单中所指定的)一起加载,然后运行您的程序

有人能详细说明一下这个,直到“它为这个和那个分配内存”级别吗?我很想知道从双击可执行文件到程序成功运行的过程


p.S.图表、外部链接(欢迎使用):-)

这些信息不容易获取是有原因的——因为微软已经了解到,一旦你发布了任何内容,它就会突然保持固定不变(来源:90%的用户)

ECMA标准可从中获得,尽管目录中显示它可能不包括您所追求的材料。它当然指定了结构,但可能不是内部实现细节

对于特定的内部详细信息,您需要至少提供您感兴趣的.NET Framework的确切版本(我们将忽略其他CLR,例如),以及您正在运行的程序的详细信息

如果您有需要这些详细信息的实际(即调试)原因,请从开始执行并逐步完成加载过程。(这也有利于兴趣,尽管它可能不那么令人愉快。)


最后,它是开源的,所以您可以浏览他们的代码,看看他们选择如何实现它。显然不能保证它与微软实现它们的方式完全相同,但作为一种学术练习,两者都应该足够。

一本书来规范它们:。

谢谢。这真的只是为了我自己的理解和好奇心。我想我正在寻找尽可能多的细节来涵盖这个过程。这在文献中有很好的介绍,杰弗里·里克特的书很受欢迎。想把这样一本书挤到一个很好的帖子里没有什么意义。你能推荐一本吗?还有。我不是在寻找一本完整的教科书答案,但我基本上正在寻找一个答案,它将取代我脑海中的云,而现在“神奇的事情发生”的字眼是我能理解的事情发生的过程。现在在“点击可执行文件”和“程序正在运行”之间有一层模糊。酷。现在在我的狩猎书架上。谢谢