我试图弄清楚 Windows(XP 到 7)是如何处理 MSI 文件的安装和卸载的。我遇到过 Windows Installer 无法卸载的情况,因为它缺少原始 MSI 文件,这让我相信它在某处存储了所有已安装 MSI 包的副本。在哪里?
我有几个理论。
它希望它位于安装时所在的文件夹中。中的注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall确实指向原始安装文件夹,缺少 MSI 文件时的错误消息通常指向此。不过,从此文件夹中删除 MSI 文件不会妨碍卸载过程,所以我拒绝了这个理论。
C:\Windows\Installer. 这个文件夹实际上包含一堆看似随机命名的MSI文件。但是这个列表是不完整的。我确实在 1) 中提到的注册表项中找到了该文件夹中没有 MSI 副本的条目。
那么这是如何工作的呢?即使 MSI 不在 1) 和 2) 中,Windows 安装程序如何能够卸载 MSI 安装的应用程序?