创作“合并模块注册表”表

根据注册表信息类型使用“合并模块注册表”表。

TypeLib、Class、AppId、ProgId、Extension、Verb 或 MIME 表

对于类型库、类、扩展和谓词,在合并模块的 TypeLibClassAppIdProgIdExtensionVerbMIME 表中创作注册表信息。 如果使用 Registry 表添加此信息,Windows 2000 无法为这些组件提供系统范围的播发。

出于以下原因,合并模块作者可能决定不使用 Class 表进行注册:

  • 若要通过 Class 表进行注册,文件必须是其组件的 KeyPath。 这可能需要对组件的组织进行不可接受的更改。
  • COM 调用可能会触发安装程序尝试重新安装已播发的类。 为避免在客户端计算机不支持用户界面时触发重新安装,作者可能决定不使用 Class 表来注册类。

Registry 表

使用 Registry 表添加无法在 TypeLib、Class、AppId、ProgId、Extension、Verb 或 MIME 表中创作的注册表信息。 Windows 2000 无法为使用 Registry 表的组件提供系统范围的播发。

创作 Registry 表时,使用 [#File] 或 [!File] 格式而非 [Directory]Filename 引用文件路径。 后一种格式不支持“从源运行”安装。 使用前一种格式还能更轻松地检测缺失的文件和有故障的组件。

在 Registry 表的 Key 列中使用格式化文本时要当心。 由于 Windows Installer 不会重新安装已安装的组件,因此在此字段中使用格式化文本可能会导致在移除应用程序时留下注册表项。

SelfReg 表

建议不要使用 SelfReg 表。 有关不使用自动注册的原因列表,请查看 SelfReg 表。 应尽可能使用 TypeLib、Class、AppId、ProgId、Extension、Verb 或 MIME 表,在所有其他情况下使用 Registry 表。