1.2 将托管模块组合为程序集
最简单的托管模块就是csc *.cs 产生的一个exe/dll等格式的PE文件。什么事程序集?一个程序要运行,可能需要不止一个dll文件,可能还需要其他的如图片,文本等各种资源协同合作。程序集(Assembly)是一个或多个托管模块,以及一些资源文件的逻辑组合,这里注意是逻辑组合,这就意味着不一定在同一个目录下(那么逻辑在哪儿呢?),程序集是组件服用,以及实施安全策略和版本策略的最小单位。
最简单的程序集就是只有一个托管模块,没有引用资源文件。那么这个程序集就是托管模块。
对于一个可重用,可部署,可实施版本管理的组件来说,程序集允许我们分离它的逻辑表示和物理表示(你可以吧程序集不同部分放到任何你想放的地方,但是要用的时候你要能方便的找到)。
程序集中的模块还包括它所引用的程序集的一些信息如版本号信息等。这些信息使得一个程序集可以实现自描述(自己把自己的组成说清楚,如包含哪些文件,版本号,干嘛用的,等等),换句话说,CLR执行一个程序集所需要的所有内容,就不再需要再注册表或者活动目录中获取额外的信息,以为程序集是自描述的。