Windows如何记住安装了哪些程序?

时间:2016-01-08 12:50:22

标签: windows windows-installer installshield

我无法从Windows 7卸载我自己使用InstallShield创建的软件包。

从控制面板运行删除程序只有在中止和回滚之前才获得1/2路。 有趣的是,它报告的问题是我的安装步骤之一,而不是其中一个卸载步骤。 沮丧我使用了Windows安装清理,并且该程序包不再列在删除程序下。 但是,当我再次尝试运行安装程序时,它会报告必须先卸载以前版本的软件,然后才能继续。

我猜测唯一ID仍然存在于注册表中但不是。 Windows如何确定我的机器上安装了以前版本的软件?

1 个答案:

答案 0 :(得分:1)

防止卸载产品的卸载问题的最佳解决方案是调试问题(通常是自定义操作)并修复或删除它,然后使用相同的ProductCode重建MSI。然后使用命令行重新安装它:

msiexec / I [msi文件的路径] REINSTALL = ALL REINSTALLMODE = vomus

更新产品,重新缓存的固定产品现在将卸载。否则(因为您无法重新创建MSI)可以在C:\ Windows \ installer中进入缓存的MSI,并使用Orca手动更改MSI,例如,调整CA不要运行。但你需要知道你在做什么。

换句话说,不幸的是,在使用安装程序清理实用程序之前解决卸载问题会更好,我认为可能不再支持它,因为它不能完全清理系统。 / p>

现在,您最好的方法是更改​​您的ProductCode,UpgradeCode和PackageCode,因为它们将成为Windows将用于查看您的产品已安装的系统中的项目。这个东西在注册表中,但是它被混淆了(重新排列的guid)并散布在周围。