程序集_1.0.0.0

一、定义

     通过阅读一些关于程序集的文章后,并通过自己的观察,对程序集这个概念也有了初步的认识。

     从结构的角度定义:程序集是一个或多个类型定义文件和资源文件的集合。从作用的角度定义:程序集构成了部署、版本控制、重复使用、激活范围控制和安全权限的基本单元。(MSDN)

     我认为,想要理解程序集这个概念,首先要清楚程序集有哪些组成部分。

二、程序集结构

     如上图所示,程序集主要包含三个部分:程序集清单(manifest)、托管模块(managed module)和资源文件集。在这三个组成部分中只有程序清单是必须的的。下面我们对这三个组成部分详细介绍。

     1、程序集清单

     程序集清单主要是包含了程序集的自描述信息。如程序集的版本号、程序定义了哪些类型等等。这些信息都包含在不同的信息表中。主要有以下四个信息表:

  •      AssemblyDef
  •      FileDef
  •      ManifestResourceDef
  •      ExportedTypeDef

      2、托管模块

 托管模块是一个标准的3264Microsoft 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文件、JPGEXML文件等。

     

posted on 2008-12-03 11:49  放风筝的人  阅读(305)  评论(0)    收藏  举报

导航