我读了c#程序编译需要两个步骤。
首先它生成MSIL然后生成机器代码。所以我很想看到第一阶段编译(MSIL)生成的文件。
我一直认为DLL文件是包含MSIL代码的文件,但我认为我错了。
答案 0 :(得分:5)
你是对的。 .NET DLL和EXE(在.NET中称为程序集)是包含MSIL的。 DLL可以使用另一种格式而不是.NET格式,这就是为什么.NET程序集有一个标题使它们可以识别的原因。您可以使用corflags.exe
检查DLL / EXE是否是.NET DLL / EXE。
程序集中的IL代码由CLR(公共语言运行时)解释,后者将其转换为机器代码。您实际上无法看到该步骤,因为它是由JIT在运行时完成的(或者您应该使用ngen.exe
预编译程序集并读取生成的文件)。
答案 1 :(得分:3)