删除滞留的文件

如果在运行卸载后仍然安装了本应从用户计算机中删除的某个文件,则安装程序可能由于以下一个或多个原因,未删除包含该文件的组件:

  • msidbComponentAttributesPermanent 位是在 Component 表的 Attributes 列中为该组件设置的。

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

  • 该组件被仍安装的其他应用程序或功能使用。

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

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

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

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

    注意

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