删除已搁浅的文件

如果在运行卸载后,应从用户计算机中删除的文件仍安装,安装程序可能无法删除包含该文件的组件,原因如下一个或多个:

  • 组件表的属性列中为组件设置了 msidbComponentAttributesPermanent 位。

  • 在 Component 表的 ComponentId 列中没有为组件输入任何值。

  • 该组件由另一个仍在安装的应用程序或功能使用。

  • 条件 表中指定了一个条件,可在安装期间启用功能,并在卸载期间禁用该功能。

  • 组件的关键文件在 HKLM\Software\Microsoft\Windows\CurrentVersion\SharedDLLs下具有以前的引用计数。

  • 该组件安装在 System 文件夹中,组件中的任何文件在 HKLM\Software\Microsoft\Windows\CurrentVersion\SharedDLLs下具有以前的引用计数。

  • Windows 安装程序不会删除由 Windows 资源保护(WRP)保护的任何文件或注册表项。 有关详细信息,请参阅 使用 Windows Installer 和 Windows 资源保护。 在 Windows Server 2003、Windows XP 和 Windows 2000 上,安装程序不会删除受 Windows 文件保护(WFP)保护的任何文件。 如果组件的密钥路径文件或注册表项受 WFP 或 WRP 保护,安装程序不会删除该组件。

    注意

    由于 Windows Installer 不会安装、更新或删除受 WRP 保护的任何资源,因此不应在安装包中包含受保护的资源。 请改用 Windows 资源保护部分中介绍的支持的资源替换机制。