我正在学习 .net 框架理论概念(使用 wiki 和 google)。正如我从wiki 上的这张图片中了解到的那样,.net 框架中编译和执行过程的主要(也是最基本的)视图表明 c#、j#、vb.net 等中的各种源代码被编译成一个平台中立的字节码称为 CLI 代码(通用中间语言代码),然后将其编译(或者它是否被解释?)成一个依赖于平台的代码,称为本机代码。此代码的创建方式可在特定平台上提供无问题且易于执行的方式。但是我对这里给出的源代码到字节码编译阶段的详细描述感到困惑。我的问题是:
- 为什么 CIL 代码存储在这个程序集、PE 格式和清单中?
- 这些是什么?
- 为什么不直接将其转换为本机可执行代码。此外,还提到 CIL 代码被编译为 1) 字节码(被解释为可执行代码)。或 2) 二进制可执行代码。
- 您能否举例说明 .net 分别应用这两种技术的一些平台?请用简单的术语解释一下。
先感谢您。