0

我已经到处寻找解决方案,但无法让它们工作。

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

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

有人有这方面的信息吗?

4

1 回答 1

0

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

于 2013-10-09T21:26:59.540 回答