程序集(assembly)是完全自我描述性的,也是一个逻辑单元而不是物理单元。它可以存储在多个文件中。如果一个程序集存储在多个文件中,其中就会有一个包含入口点的主文件,该文件描述了程序集的其他文件。
私有程序集和共享程序集的安装:
私有程序集的安装很简单,只需要把相应的文件放在文件系统的对应的文件夹中即可(不需要注册表项)。
共享程序集:
共享程序集是其他应用程序可以使用的公共库。因为其他软件可以访问共享程序集,所以要采取一定的措施来防止以下风险:
名称冲突和被同一程序集的不同版本覆盖。
这些问题的解决方法是把共享程序集放在文件系统的一个特定的子目录树下,称为全局程序集高速缓存(GAC)。与私有程序集不同,不能简单的把共享程序集复制到对应的文件夹中,而需要专门安装到高速缓存中。
为了避免名称冲突,共享程序集应根据私有密钥加密法指定一个名称(私有程序集只需要指定与其主文件名称相同的名称即可)。该名称称为强名称,并保证其唯一性,它必须有引用共享程序集的应用程序来引用。