.NET编译时,可执行文件包含什么?

时间:2011-03-14 15:15:31

标签: .net clr performance

  

可能重复:
  What exactly happens when you run a .NET executable (step by step to the point where the program is loaded and running)?

我在CIL,CLI,CLR方面有点迷失......我很想知道在编译和运行我的应用程序时如何处理工作。

首先,应用程序转换为CIL ..这是可执行文件中包含的字节码吗?对于运行.NET应用程序的简单逐步说明,我将非常感激。

1 个答案:

答案 0 :(得分:4)

可以找到摘要here

基本上,当您编译应用程序时,它会被编译为CIL(字节码,以前称为MSIL)。这是.Net dll中包含的内容,您可以使用ILDASM或Reflector等工具查看此字节码。

在运行时,Just-In-Time编译器(JIT)将其编译为实际的可执行代码,这是您机器的原生代码。实际上,使用名为NGen的工具,您可以“预编译”本机映像,以便您的dll实际上包含本机代码,但这是一个手动步骤,在大多数情况下都没有完成。