程序集文件包含程序集清单、类型元数据、Microsoft 中间语言 (MSIL) 代码和其他资源。 程序集清单包含程序集元数据,该元数据提供程序集自我描述所需的全部信息。 程序集清单中包含以下信息:
程序集名称版本信息区域性信息强名称信息文件的程序集列表类型参考信息引用和依赖程序集信息
无法直接执行程序集中包含的 MSIL 代码。 相反,MSIL 代码执行通过 CLR 进行管理。 默认情况下,创建程序集时,程序集对于应用程序是私有的。 若要创建共享程序集,需要为程序集指定一个强名称,然后在全局程序集缓存中发布该程序集。
以下列表描述了与 Win32 DLL 的功能相比的程序集的一些功能:
自我描述
创建程序集时,CLR 运行程序集所需的全部信息都包含在程序集清单中。 程序集清单包含依赖程序集的列表。 因此,CLR 可以保持应用程序中使用的一组一致的程序集。 在Win32 DLL 中,在使用共享 DLL 时,无法在应用程序中使用的一组 DLL 之间保持一致性。
版本控制
在程序集清单中,版本信息由 CLR 记录和强制执行。 此外,版本策略还允许强制执行特定于版本的使用。 在Win32 DLL 中,操作系统无法强制执行版本控制。 必须确保 DLL 向后兼容。
并行部署
程序集支持并行部署。 一个应用程序可以使用程序集的一个版本,另一个应用程序可以使用不同版本的程序集。 从Windows 2000 开始,支持通过定位应用程序文件夹中的 DLL 进行并行部署。 此外,Windows文件保护可防止系统 DLL 被未经授权的代理覆盖或替换。
自我包含和隔离
使用程序集开发的应用程序可以是自包含应用程序,也可以与计算机上运行的其他应用程序隔离。 此功能有助于创建影响零的安装。
执行
程序集在程序集清单中提供且由 CLR 控制的安全权限下运行。
与语言无关
可以使用任何一种受支持的 .NET 语言开发程序集。 例如,可以在 Microsoft Visual C#中开发程序集,然后在 .NET 项目中Visual Basic程序集。

参考

主题
亮暗高对比度
© Microsoft 2021