0

在我的 InnoSetup 中,我在 InstallRun 部分使用了几个文件操作。如果这些都正确执行而没有问题,那么应该删除某个临时文件夹。

如果出现问题,则临时文件夹仍然存在。在这种情况下,我希望使用显示我选择的错误消息的消息框取消设置。

由于我(还)没有使用 Pascal 脚本的经验,我恳请您为我提供一个示例脚本,您可以这样做。

提前致谢!

补充:我现在将解释我需要这个的原因。该方案正在更新现有版本,即 Windows 服务应用程序。在更新这些文件之前,我必须先卸载服务。为此,我使用安装包中的我自己的命令行。其他新文件将临时解压缩到临时文件夹(应用文件夹的子文件夹)。卸载 Windows 服务后,新文件将从 temp 文件夹移动到 app 文件夹。如果这里出现问题,我想取消设置并向用户显示错误消息。通过检查临时文件夹是否仍然存在,我可以最好地判断是否出现问题。

4

1 回答 1

2

假设您指的是该[Run]部分,则无法在该过程后期取消安装。

相反,您应该考虑使用PrepareToInstall. 在这种情况下,您需要做的就是停止和取消注册旧服务,可以直接通过 API 或根据您的选择在旧服务 EXE 上调用命令。(对于新安装,不要忘记处理该服务尚不存在的情况。)

之后[Files]将正常替换文件,然后您可以[Run]或使用代码(通过AfterInstallCurStepChanged(ssPostInstall),取决于您希望它发生的时间)重新注册并启动服务。

无需使用临时文件夹 - 这很好,因为这也会导致卸载问题。

于 2012-10-05T22:26:03.797 回答