将应用程序组织成组件

Windows Installer 在称为组件的部件中安装和删除应用程序或产品。 组件是始终作为一个单位在用户系统中安装或删除的资源集合。 资源可以是文件、注册表项、快捷方式或任何其他可安装的项。 每个组件分配有一个唯一的组件代码 GUID

安装包作者应该只创建可以在不损害其他组件的情况下安装和删除的组件与组件版本。 此外,删除组件不应在用户计算机上留下任何孤立的资源,例如未使用的文件、注册表项或快捷方式。 为确保做到这一点,作者在将资源组织成组件时应遵守以下一般规则:

  • 确保创建的两个组件不会在同一目标位置安装同名的资源。 如果某个资源必须在多个组件中复制,请在每个组件中更改该资源的名称或目标位置。 应该对每个应用程序、产品、产品版本和公司应用此规则。
  • 请注意,上述规则意味着两个组件不能有相同的关键路径文件。 关键路径值指向属于安装程序用来检测组件的组件的特定文件或文件夹。 如果两个组件具有相同的关键路径文件,则安装程序无法辨别要安装哪个组件。 但是,两个组件可以共享一个关键路径文件夹。
  • 不要创建与所有先前组件版本不兼容的组件版本。 组件可能由其他应用程序、产品、产品版本和公司共享。 应该创建新组件。
  • 创建的组件不应包含需要安装到用户系统上多个目录中的资源。 安装程序将组件中的所有资源安装到同一目录。 无法将部分资源安装到子目录。
  • 不要为每个组件包含多个 COM 服务器。 如果组件包含 COM 服务器,该服务器的位置必须是该组件的关键路径。
  • 不要将每个组件的多个文件指定为“开始”菜单或桌面快捷方式的目标。

将应用程序组织成组件时,包作者可能需要添加、删除或修改现有安装中的资源。 在这种情况下,作者必须决定是要通过引入新组件来提供资源,还是通过修改现有组件并将其更改为新版组件来提供资源。 由于在引入新组件时必须分配唯一的组件代码,因此作者必须确定其更改是否需要更改组件代码。 有关详细信息,请参阅更改组件代码如果违反组件规则,会发生什么情况?定义安装程序组件