1、托管PE文件
一个托管PE文件包含 PE表头、CLR表头、元数据和IL代码
2、元数据--一些二进制数据,其中包含一些表
ModuleDef包含一个标识托管模块的条目,该条目包括模块的文件名和拓展名(不包含路径),以及一个模块版本ID(由编译器创建的GUID形式),不要试图重新命名PE文件,因为这将阻止CLR在运行时定位程序集
TypeDef托管模块中定义的每一个类型在TypeDef表中都有一个对应的条目,每个条目包括类型的名称及其基类型、一些标记(如public、private等)以及一些指针
3、程序集是CLR的操作对象。也就是说CLR总是先加载包含清单元数据表的文件,然后利用该清单来获取程序集其他文件
程序集特性:程序集定义了可重用的类型;程序集标识有一个版本号;程序集可以包含与之相关的安全信息
4、和应用程序部署在同一目录下的程序集称作私有部署程序集(元数据)
5、可以被多个应用程序共同访问的程序为全局部署程序集
6、强命名程序集(必须存放在CLR确知的目录下)
7、全局程序集缓存GAC(Global Assembly Cache),通常位于C:\Windows\Assembly\GAC\,其子目录名称是依靠算法产生的,不应手动添加程序集文件至GAC中