.NET可移植可执行文件VS .NET程序集

时间:2015-09-06 02:40:29

标签: .net clr .net-assembly il portable-executable

我很困惑。在一些文章中,我读过PE是一个程序集,IL代码存储在PE中 在其他人中,我读过PE有一个关联的程序集清单和IL代码存储在PE中。在一些文章中,我已经在汇编中读取了IL存储,并且在PE文件的CLR头部分中存储了指示PE文件是.NET可执行文件的信息。 PE文件和.NET程序集是否相同? IL代码存储在哪里?

2 个答案:

答案 0 :(得分:2)

我不明白你看到的区别,我会对所有人回答“是”。

更具体地说,您称之为PE可执行文件(典型的Windows可执行文件)包含一个启动.NET VM的存根,以及一个包含要传递给VM的已编译汇编代码的部分。

答案 1 :(得分:2)

PE是本机和.NET可执行文件的文件格式,信封,

https://en.wikipedia.org/wiki/Portable_Executable

.NET程序集必须是PE,但反之则不然。