C# C代码是如何编译的?
将C#编译成PE(.exe文件)的过程是什么?C# C代码是如何编译的?,c#,compilation,command-line-interface,cil,C#,Compilation,Command Line Interface,Cil,将C#编译成PE(.exe文件)的过程是什么? 如果我错了,请纠正我: C#被编译成MSIL MSIL被翻译成字节码 当我们启动PE文件时,.NETVM将其转换回MSIL代码并执行它 如果这是正确的,那么这是否意味着当我在文本编辑器中打开PE文件时,是该字节码还是我遗漏了任何其他步骤,比如加密字节码 C#编译器->exe(PE文件)->机器代码 此PE文件是PE头、MSIL指令和元数据 当编译器生成(MSIL)时,它也会生成元数据。MSIL和元数据包含在可传输的PE文件中。此PE文件宿主是.NE
如果我错了,请纠正我:
运行.Net PE file->mscorlib.dll->CLR->JIT->Machine Code这确实是一个你应该花一点时间在网上搜索的主题。这是一个很好的文档,看看那里你可以看到不同的步骤看起来像什么,MSIL已经是“字节码”。EXE或DLL文件的格式非常灵活,可以存储任意数据。类似于MSIL和.NET程序集所需的元数据。在运行时,MSIL被即时编译器转换为机器代码。所以exe文件只是字节码?所以PE头是纯MSIL字节码?否。PE头在.NET或其他程序集中是相同的。