对MSIL感到困惑

Son*_*onu 1 .net c# cil

我读了c#程序编译需要两个步骤.

首先它生成MSIL然后生成机器代码.所以我很想看到第一阶段编译(MSIL)生成的文件.

我一直在想DLL文件是包含MSIL代码的文件,但我认为我错了.

Pat*_*man 5

你是对的..NET DLL和EXE(在.NET中称为程序集)是包含MSIL的.DLL可以使用另一种格式而不是.NET格式,这就是为什么.NET程序集有一个标题,使它们可以识别.您可以corflags.exe用来检查DLL/EXE是否是.NET DLL/EXE.

程序集中的IL代码由CLR(公共语言运行时)解释,后者将其转换为机器代码.您实际上无法看到该步骤,因为它是由JIT'ter在运行时完成的(或者您应该使用ngen.exe并预读生成的文件来预编译程序集).