一、装配件的基本概念
装配件(Assembly)是.NET应用程序的基本构建块和部署单元,它是.NET框架中代码打包、版本控制、安全性和重用的基本单位。简单来说,一个装配件就是一个或多个编译后的.NET模块的逻辑集合,通常表现为一个.dll或.exe文件。
1.1 装配件的物理与逻辑结构
从物理角度看,装配件是一个PE(Portable Executable)格式的文件,包含以下核心部分:
- MSIL代码:编译后的中间语言代码
- 元数据:描述代码中类型和成员的信息
- 清单(Manifest):装配件的自我描述信息
- 资源文件:如图像、字符串等嵌入资源
从逻辑角度看,装配件是:
- 类型定义的容器:类、接口、结构等
- 版本控制的基本单元:强名称装配件支持严格版本控制
- 安全边界:代码访问安全(CAS)的权限授予单位
- 引用作用域:类型可见性和访问权限的作用域
二、装配件的类型与组成
2.1 装配件的分类
分类标准 | 类型 | 说明 |
---|---|---|
文件数量 | 单文件装配件 | 所有内容存储在一个物理文件中 |
多文件装配件 | 由多个模块(.netmodule)组成的装配件,较少使用 | |
执行方式 | 可执行装配件(.exe) | 包含程序入口点(Main方法) |
类库装配件(.dll) | 不包含入口点,供其他装配件引用 | |
命名特征 | 弱名称装配件 | 没有强名称签名,版本控制能力弱 |
强名称装配件 | 使用公钥/私钥对签名,提供唯一标识和版本控制 | |
部署位置 | 私有装配件 | 部署在应用程序目录或子目录中 |
共享装配件 | 安装在全局装配件缓存(GAC)中,供多个应用程序共享 |