关于并行程序集

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

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

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

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

representation of typical side-by-side assembly

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

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

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

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