.NET CSC.EXE输出文件格式

.NET CSC.EXE输出文件格式,.net,clr,.net-assembly,.net,Clr,.net Assembly,因此,我对.NET运行时体系结构和结构感兴趣。我想知道它是如何一步一步地工作的。我有几本书,也在谷歌上寻找一些答案,但现在,我想要一些问题的正确答案 在编写的书籍中,CSC.exe(编译器)生成托管模块,该模块包含: 1.PE头部 2.CLR头 3.元数据 4.IL码 编译后,工具AL.exe(程序集链接器)将该模块合并到程序集中。 我还知道,程序集有两个主文件扩展名:DLL或EXE 但是,我对托管模块感兴趣。它是如何编译编译器的,文件格式是什么?它是.netmodule扩展吗?还是DLL p、

因此,我对.NET运行时体系结构和结构感兴趣。我想知道它是如何一步一步地工作的。我有几本书,也在谷歌上寻找一些答案,但现在,我想要一些问题的正确答案

在编写的书籍中,CSC.exe(编译器)生成托管模块,该模块包含: 1.PE头部 2.CLR头 3.元数据 4.IL码

编译后,工具AL.exe(程序集链接器)将该模块合并到程序集中。 我还知道,程序集有两个主文件扩展名:DLL或EXE

但是,我对托管模块感兴趣。它是如何编译编译器的,文件格式是什么?它是.netmodule扩展吗?还是DLL

p、
对不起,我说的是英语。

托管模块的格式与.DLL/.EXE类似(它们都是PE格式,它们包含PE头+CLR头+元数据+代码)。 不同之处在于,如果要进行多模块组装,则需要创建.netmodule。多模块组件是一个在其内部具有多个模块的组件,System.Data.dll是其中的一个例子,因为它既有托管的部件,又有本地C++组件,它包含1个组件。 .NetModules只是将多个模块打包到一个组件中的一种方便方法。高级编译器(如C#)不处理它,这就是为什么需要使用汇编链接器工具(AL)

希望这有帮助
感谢阅读ECMA335。有趣且信息丰富,没有男人。我了解什么是IL代码等等。我的问题是关于托管模块扩展的。有时我读到,模块和程序集具有相同的扩展名(DLL)。有时我读到,模块有.netmodule扩展名。文件扩展名到底有什么模块(托管模块)还有些模糊。我们知道,托管模块有4个要点:1。聚乙烯封头;2.CLR头;3.元数据;4.IL代码;但什么是物理管理模块。当语言编译器从高级代码创建它时,它有什么扩展?