关于并行程序集

Windows 并行程序集由 清单描述。 并行程序集包含始终一起提供给应用程序的一组资源(一组 DLL、Windows 类、COM 服务器、类型库或接口)。 程序集清单中介绍了这些内容。

通常,并行程序集是单个 DLL。 例如,Microsoft COMCTL32 程序集是具有清单的单个 DLL,而Microsoft Visual C++开发系统运行时库程序集包含多个文件。 清单包含描述并行程序集和并行程序集依赖项的 元数据

操作系统将并行程序集用作命名、绑定、版本控制、部署和配置的基本单元。 每个并行程序集都具有唯一标识。 程序集标识的属性之一是其版本。 有关详细信息,请参阅 程序集版本

从 Windows XP 开始,多个版本的并行程序集可由同时运行的应用程序使用。 加载程序使用清单和程序集版本号来确定程序集版本到应用程序的正确绑定。 并行程序集和清单适用于应用程序和并行管理器,如下图所示。

典型并行程序集的表示形式

在前面的示例中,Comctl32.DLL版本 6.0 和 Comctl32.DLL 版本 5.0 都位于并行程序集缓存中,可供应用程序使用。 当应用程序调用 加载 DLL 时,并行管理器将确定应用程序是否具有清单中描述的版本依赖关系。 如果没有相关的清单,系统将加载程序集的默认版本。 对于 Windows XP,Comctl32.DLL版本 5.0 是系统默认值。 如果并行管理器发现对清单中说明的版本 6.0 有依赖关系,则会加载该版本以与应用程序一起运行。

Microsoft 提供多个关键系统程序集作为并行程序集。 有关详细信息,请参阅 支持的 Microsoft 并行程序集。 应用程序开发人员还可以创建自己的并行程序集。 有关详细信息,请参阅 创建并行程序集的指南。 在许多情况下,可以更新现有应用程序以使用并行程序集,而无需更改应用程序代码。

出于以下原因,建议开发人员使用并行程序集来创建 独立应用程序,并将现有应用程序更新为独立应用程序:

  • 并行程序集减少了 DLL 版本冲突的可能性。
  • 并行程序集共享使多个版本的 COM 或 Windows 程序集可以同时运行。
  • 应用程序和管理员可以在部署后基于 全局按应用程序配置 更新程序集配置。 例如,可以更新应用程序以使用包含更新的并行程序集,而无需重新安装该应用程序。