windows 究竟是如何记住安装了哪些程序的?
How exactly does windows remember which programs are installed?
我无法从 Windows 7 中卸载我自己使用 InstallShield 创建的软件包。
运行 从控制面板中删除程序只进行了 1/2 就中止并回滚。
有趣的是,它报告问题是我的安装步骤之一,而不是卸载步骤之一。
沮丧的是,我使用了 Windows Install Cleanup,并且该软件包不再列在删除程序下。
然而,当我再次尝试 运行 安装程序时,它报告说必须卸载以前版本的软件才能继续。
我猜测唯一 ID 仍然存在于注册表中,但现在不存在了。
windows 如何确定我的计算机上安装了该软件的先前版本?
解决阻止产品卸载的卸载问题的最佳解决方案是调试问题(通常是自定义操作)并修复或删除它,然后使用相同的 ProductCode 重建 MSI。然后用命令行重新安装:
msiexec /I [msi 文件路径] REINSTALL=ALL REINSTALLMODE=vomus
它更新了产品,re-cached 修复的产品现在将被卸载。否则(因为您无法重新创建 MSI)可以进入 C:\Windows\installer 中的缓存 MSI 并使用 Orca 手动更改 MSI,例如,将 CA 设置为不 运行。但是你需要知道你在做什么。
换句话说,不幸的是,在求助于安装程序清理实用程序之前解决卸载问题会更好,我认为它可能不再受支持,因为它不能完全清理系统.
您现在最好的方法是更改您的 ProductCode、UpgradeCode 和 PackageCode,因为它们将属于系统中的项目,Windows 将使用它们来查看您的产品是否已安装。这些东西在注册表中,但它被混淆了(重新排列的 guid)并散布在各处。
我无法从 Windows 7 中卸载我自己使用 InstallShield 创建的软件包。
运行 从控制面板中删除程序只进行了 1/2 就中止并回滚。 有趣的是,它报告问题是我的安装步骤之一,而不是卸载步骤之一。 沮丧的是,我使用了 Windows Install Cleanup,并且该软件包不再列在删除程序下。 然而,当我再次尝试 运行 安装程序时,它报告说必须卸载以前版本的软件才能继续。
我猜测唯一 ID 仍然存在于注册表中,但现在不存在了。 windows 如何确定我的计算机上安装了该软件的先前版本?
解决阻止产品卸载的卸载问题的最佳解决方案是调试问题(通常是自定义操作)并修复或删除它,然后使用相同的 ProductCode 重建 MSI。然后用命令行重新安装:
msiexec /I [msi 文件路径] REINSTALL=ALL REINSTALLMODE=vomus
它更新了产品,re-cached 修复的产品现在将被卸载。否则(因为您无法重新创建 MSI)可以进入 C:\Windows\installer 中的缓存 MSI 并使用 Orca 手动更改 MSI,例如,将 CA 设置为不 运行。但是你需要知道你在做什么。
换句话说,不幸的是,在求助于安装程序清理实用程序之前解决卸载问题会更好,我认为它可能不再受支持,因为它不能完全清理系统.
您现在最好的方法是更改您的 ProductCode、UpgradeCode 和 PackageCode,因为它们将属于系统中的项目,Windows 将使用它们来查看您的产品是否已安装。这些东西在注册表中,但它被混淆了(重新排列的 guid)并散布在各处。