程序集(Assembly)在.NET框架中是一个非常重要的概念,它是指 将编译后的代码和相关元数据打包成的一个单元。程序集是.NET应用程序的基本构建块,它们以单个实现单元(通常是一个或多个文件)的形式生成、版本化和部署。
程序集可以分为两种类型:
可执行程序集(Executable Assembly):
包含一个入口点(如Main方法),可以直接作为应用程序执行。
类库程序集(Library Assembly):
不包含入口点,主要用于提供类库和可重用组件。
程序集通过其清单(Assembly Manifest)进行自我描述,清单中包含了程序集的元数据,如名称、版本、区域性和数字签名等。这些信息使得程序集可以在应用程序之间共享,并且CLR(公共语言运行时)能够识别和加载它们。
程序集的特征包括:
定义了可重用的类型:
程序集包含了类型定义文件,这些文件定义了程序集中所有可用的类型,如类、接口、结构等。
标记了一个版本号:
每个程序集都有一个唯一的版本号,这使得应用程序可以在不破坏现有功能的情况下升级到新版本。
有关联的安全信息:
程序集可以包含安全信息,如权限和代码访问安全性(Code Access Security, CAS)策略。
部署程序集是指将程序集文件(如DLL文件)安装到适当的位置,以便应用程序可以引用和使用它们。部署方式可以是私有的,也可以是全局的。私有部署的程序集通常放置在应用程序的基目录或其子目录中,而全局部署的程序集则放置在CLR指定的公认位置。
总之,程序集是.NET应用程序中用于存储已编译代码和相关元数据的基本单元,它们通过清单进行自我描述,并通过不同的部署方式在应用程序中使用。