installshield - 卸载期间无法删除注册表项

installshield- cannot delete registry key during uninstall

我有带链式 msi 的安装程序。

如果我卸载,它不会删除 chaind msi 的注册表项。 我尝试了很多方法都没有成功。

我正在写我的方法,希望有人能找到哪里出了问题:

  1. 我写了一个批处理文件:

    注册删除HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall{产品代码} /f

当我 运行 它是独立的时,这个批处理文件删除了注册表项,但是如果我将它作为自定义操作通过 installshield 放置它,它就会失败。

  1. 通过自定义操作:

    LaunchAppAndWait("C:\Windows\System32\cmd.exe ", "/C REG DELETE HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{产品代码} /f", WAIT);

  2. 通过调整批处理文件的自定义操作

    LaunchAppAndWait("C:\Windows\System32\cmd.exe ", "/C \"C:\Program Files\Apache Software Foundation\Tomcat 7.0\bin\remove registryKey.bat\"", 等待);

  3. MsiExec.exe /x{GUID} - 失败,因为它不能 运行 两个并行安装

我真的需要你的帮助!!! 很久以前我一直在尝试解决它,但没有成功。

提前致谢!!!

32 位还是 64 位机器?您可能 运行 在 64 位计算机上安装 32 位。它可能删除了错误的注册表项(32/64 位)。通过执行 REG DELETE /?

查看帮助

注意 /reg:32 和 /reg:64 参数。使用合适的。

还要检查 bat 文件中的错误。出错时暂停(至少在您获得正确的代码之前)。