托管模块集成在程序集(Assemblies)中
CLR 实际上并不处理模块,它处理程序集。程序集是一个或多个模块/资源文件的集合,也是最小的可复用,安全性,版本化的最小单位。根据你选择的编译器,你可以生成一个或多个程序集。在 CLR 的概念中,这称之为组件(component)。
插图 1-2 将帮助你理解程序集到底是什么。托管模块和资源文件经过一个工具的处理集成为程序集,这个工具生成一个 PE32(+) 文件,这个文件包含了一块数据信息称之为manifest。而这个 manifest 是另一组元数据(metadata),他们描述了组成这个程序集的文件,公有类型以及资源数据。
通常,编译器负责把生成的托管模块组入到一个程序集中,并不包含其它的内容。即:一个程序集就是一个托管模块。在编译的过程中不包含其它处理,如果你需要把其它文件组入到这个程序集中则需要其他工具 (例如 assembly linker, AL.exe) 。
一个程序集模块包含了必要的信息,保证其是自我描述 (self-describing) 的,所以 CLR 可以直接检测程序集的依赖项目保证该程序集的顺利运行,不需要再访问注册表或者 Active Directory Domain Services (AD DS)。(比起非托管组件这简单了许多)

本文介绍了程序集的概念及其在CLR中的作用。程序集是由一个或多个托管模块和资源文件组成的单元,是.NET应用的基本部署单元。文章还解释了如何通过编译器或特定工具将这些文件打包成一个自我描述的程序集。
334

被折叠的 条评论
为什么被折叠?



