Inno Setup Exec不会等待InstallShield卸载完成

问题描述 投票:2回答:1

尝试在安装之前使用卸载字符串卸载软件(并在Exec中使用InitializeSetup运行),它不会等待卸载完成,而是继续安装到Inno Setup中的下一步。

我正在使用以下代码和我尝试在Installshield产品中卸载的软件:

Exec(
  ExpandConstant('{pf}\InstallShield Installation Information\{{XXX8X88X-XX8X-88X8-X8XX-88X888X88888}\setup.exe'),
  '-s -runfromtemp -l0x0004 -removeonly -remove', '',
  SW_SHOW, ewWaitUntilTerminated, ReturnCode)
inno-setup installshield
1个回答
4
投票

setup.exe最有可能执行实际卸载的子进程并退出。所以Inno Setup似乎不等待这个过程结束。这是一种常见的行为,因为卸载程序需要删除自身,它不能执行的操作,如果它仍在运行。因此,它在临时文件夹中创建自身(或其他可执行文件)的副本,并从那里执行(重新)。

根据InstallShield documentation,您可以尝试将/w/clone_wait开关添加到命令行:

/w ...对于基本MSI项目,/w选项强制Setup.exe等到安装完成后再退出。

/clone_wait ...此参数表示原始设置应在退出之前等待克隆的设置过程完成。

© www.soinside.com 2019 - 2024. All rights reserved.