这个问题:
Inno setup executes [UninstallRun] during installation
E.g。代码:
[UninstallRun]
Filename: "{sys}\OfflineSvc.exe"; Parameters: "-uninstall"; WorkingDir: "{sys}"; Flags: skipifdoesntexist 32bit; StatusMsg: "Offline Processing service is being uninstalled. Please wait..."; BeforeInstall: SimpleStopService('Offline_Service', True, False); Flags: waituntilterminated
没有明确的解决方案。它似乎是为了表明原因,但没有提供明显的解决方案(也许我只是密集)。
为什么在INSTALLATION期间运行UNINSTALLRUN项目?
如果这是正常的 - 你怎么能阻止它?
INNO帮助说:
[UninstallRun]部分也是可选的,并指定要执行的任意数量的程序作为卸载的第一步。
因此可以预期UNINSTALLRUN部分只会在UnInstalling时执行。
抱歉 - 我是新来发布的,我不会让我对上述问题发表评论,所以除了发布新问题外,我没有看到任何替代方法来获取更多信息。如果新手有更好的方法,请告诉我我应该怎么做。
答案 0 :(得分:1)
[UninstallRun]部分在安装期间实际上并不运行,而是写入安装期间创建的卸载程序日志。您只需在安装程序脚本中指定[UninstallRun]部分,这样您就可以告诉卸载程序除了删除已安装的内容之外还要执行的操作,例如:您可以使用它来停止和删除在安装过程中使用[Run]部分中的sc.exe安装的服务。
在引用的示例中,它正在评估{code}函数以确定要添加到卸载程序日志的硬编码文件名,因为我相信卸载程序无法在卸载时评估代码查询,只有硬编码的文件名和存储在卸载日志中的路径。