在程序和功能/添加删除程序中启用修复选项

时间:2013-09-19 20:59:19

标签: installshield

我已经搜遍了所有的解决方案,但却无法让他们工作。

在“程序和功能”对话框中选择产品时,我公司的产品曾经有“修复”选项。您也可以右键单击该产品,然后选择“修复”。就在我继承安装程序项目之前,此修复选项消失了。我环顾四周看看有没有什么东西禁用了这个选项,却找不到任何东西。

在InstallShield中,DisableRepair设置为否。安装产品时,NoRepair产品的“卸载”部分中也没有设置注册表项。默认情况下,我相信我应该看到修复选项,不明白为什么它不存在。我已经尝试在自定义操作中弄乱ARPNOREPAIR,但都无济于事。我甚至为NoRepair创建了一个注册表项,其中0和1都是DWORD值,以查看它是否真的可以正常工作而它没有。我想说有一些代码可以禁用它,但我已经到处检查过,甚至与之前的安装工友谈过,他也不知道删除该选项的任何内容。

有没有人有这方面的信息?

1 个答案:

答案 0 :(得分:0)

经过大量的挖掘和测试后,我发现了一些有趣的事情并解决了我的问题。事实证明,有一个C#自定义操作在HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall下创建一个单独的注册表项。此外,在InstallShield中将ARPSYSTEMCOMPONENT设置为1,禁止原始条目在“程序和功能”中显示,而新条目设置为显示。显然NoModify和NoRemove使用新条目,但不是NoRepair(不知道为什么会这样)。我的解决方案是返回原始条目并修改我在自定义操作中添加的密钥。