基于.NetFramework的C#程序编译运行全过程
如下图,整个过程分为两个阶段:编译器、CLR/JIT
基于.netframework的C#程序编译运行图编译器
选择使用一个或多个面向运行时的语言编译器。编译器将源代码转换为Microsoft中间语言(MSIL)并生成必需的元数据。
CLR/JIT
将MSIL编译为本机代码。在执行时,实时(JIT)编译器将MSIL转换为本机代码。在此编译期间,代码必须通过检查MSIL和元数据的验证过程以查明是否可以将代码确定为类型安全。
基于.NetCore的C#程序编译运行全过程
如下图,整个过程分为两个阶段:编译器、CLR/JIT
基于.netcore的C#程序编译运行图编译器
选择使用一个或多个面向运行时的语言编译器。编译器将源代码转换为Microsoft中间语言(MSIL)并生成必需的元数据。
CoreCLR/RyuJIT
将MSIL编译为本机代码。在执行时,实时(JIT)编译器将MSIL转换为本机代码。在此编译期间,代码必须通过检查MSIL和元数据的验证过程以查明是否可以将代码确定为类型安全。