【发布时间】:2018-01-25 13:22:35
【问题描述】:
将C#编译成PE(.exe文件)的过程是怎样的?
如果我错了,请纠正我:
- C# 被编译成 MSIL
- MSIL 被翻译成字节码
- 当我们启动 PE 文件时,.net 虚拟机将其转换回 MSIL 代码并执行它
如果这是正确的,那么这是否意味着当我在文本编辑器中打开 PE 文件时是那个字节码,还是我缺少任何其他步骤,比如加密字节码?
【问题讨论】:
-
这确实是一个你真的应该花一点时间在网上搜索的话题。记录得很好
-
看看sharplab.io,您实际上可以看到不同的步骤是什么样的
-
不,MSIL 已经是“字节码”。 EXE 或 DLL 文件的格式非常灵活,可以存储任意数据。就像 MSIL 和 .NET 程序集所需的元数据一样。在运行时,MSIL 被翻译成机器代码,由即时编译器完成。
-
所以exe文件只是字节码?
标签: c# compilation command-line-interface cil