我看过的c#程序编译需要两个步骤。
首先它生成 MSIL,然后生成机器代码。所以我很想看看第一阶段编译(MSIL)生成的文件。
我一直认为 DLL 文件是包含 MSIL 代码的文件,但我认为我错了。
最佳答案
你说的对。 .NET DLL 和 EXE(在 .NET 中称为程序集)是包含 MSIL 的。 DLL 可以具有不同于 .NET 的格式,这就是为什么 .NET 程序集有一个标题,使它们可以被识别。您可以使用 corflags.exe
检查 DLL/EXE 是否为 .NET DLL/EXE。
汇编中的 IL 代码由 CLR(公共(public)语言运行时)解释,并将其翻译成机器代码。您实际上看不到该步骤,因为它是由 JIT'ter 在运行时完成的(或者您应该使用 ngen.exe
预编译程序集并读取生成的文件)。
关于c# - 对 MSIL 感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28273326/