程序集_1.0.0.0
一、定义
通过阅读一些关于程序集的文章后,并通过自己的观察,对程序集这个概念也有了初步的认识。
从结构的角度定义:程序集是一个或多个类型定义文件和资源文件的集合。从作用的角度定义:程序集构成了部署、版本控制、重复使用、激活范围控制和安全权限的基本单元。(MSDN)
我认为,想要理解程序集这个概念,首先要清楚程序集有哪些组成部分。
二、程序集结构

如上图所示,程序集主要包含三个部分:程序集清单(manifest)、托管模块(managed module)和资源文件集。在这三个组成部分中只有程序清单是必须的的。下面我们对这三个组成部分详细介绍。
1、程序集清单
程序集清单主要是包含了程序集的自描述信息。如程序集的版本号、程序定义了哪些类型等等。这些信息都包含在不同的信息表中。主要有以下四个信息表:
-
AssemblyDef
-
FileDef
-
ManifestResourceDef
-
ExportedTypeDef
2、托管模块
托管模块是一个标准的32或64位Microsoft Windows可移值执行体文件。
托管模块主要由5个信息模块组成,PE文件头、CLR文件头、元数据、IL代码和资源。每个组成模块都有不同的作用,以下对各个模块详细说明:
2.1、PE文件头
PE头文件包含与本地CPU代码有关的信息。
2.2、CLR文件头
包含使这个模块成为一个托管模块的相关信息。如包含了模块对CLR版本的要求…
2.3、元数据
元数据主要保存在三个元数据表中:定义表、引用表、和指针表。
定义表:主要描述了模块所定义的元素信息。如类型、方法
引用表:包含了模块所引用的元素信息。如类型、方法
指针表:包含指向各表的指针。
2.4、IL代码
IL:所有IL相容的编译器生成的都是 IL(中间语言:Intermediate Language)代码,IL也称为托管代码,因为CL
R为管理它们的执行。

2.5、资源
三、资源文件集
资源文件集,也就是包含了各种资源文件,如GIF文件、JPGE、XML文件等。
浙公网安备 33010602011771号