MSIL源代码的编译器在哪里驻留在.NET Framework中?

时间:2015-12-15 04:58:34

标签: c# asp.net

我对.NET Framework有疑问:MSIL源代码的编译器在哪里?它是在CLR本身还是在任何其他层?另外,请给我一个非常小(但足够)的.NET Framework插图。

[.NET FRAMEWORK[1]

2 个答案:

答案 0 :(得分:5)

这是一个快速的流程图(未遵循的符号),将澄清大部分内容。

enter image description here

C#或VB编译器只是工具将您的代码(托管)转换为CLR理解的IL。使用Visual Studio编译时,这些工具可以正常工作。

JIT(JIT编译)是CLR的一个特性,它在运行时将IL代码转换为最终执行的机器代码。这就是为什么有时候,在高层次上,我们说CLR会进行IL-to-Machine代码转换。

答案 1 :(得分:1)

来自Wikipedia;

CIL程序集和指令由生成环境 的编译器或名为IL Assembler(ILAsm)的实用程序生成。

使用IL反汇编程序(ILDASM)也可以将已组装的CIL再次分解为代码。还有其他工具,如.NET Reflector,可以将CIL反编译成高级语言(例如C#或Visual Basic)。这使得CIL成为逆向工程的一个非常容易的目标。此特征与Java字节码共享。但是,有些工具可以对代码进行模糊处理,并且这样做是为了使代码不易读取但仍然可以运行。