在我的InnoSetup中,我在InstallRun部分中使用了几个文件操作。如果这些执行正确没有问题,那么应该删除某个临时文件夹。
如果出现问题,那么临时文件夹仍然存在。在这种情况下,我希望使用显示我选择的错误消息的消息框取消设置。
由于我还没有使用Pascal脚本的经验,所以请您提供一个示例脚本来执行此操作。
提前致谢!
增加: 我现在解释一下我需要这个的原因。该方案是更新现有版本,即Windows Service应用程序。在更新这些文件之前,我必须先卸载服务。为此,我使用自己的命令行在安装包中。其他新文件将临时解压缩到临时文件夹(app文件夹的子文件夹)。卸载Windows服务后,新文件将从临时文件夹移动到app文件夹。如果出现问题,我想取消设置并向用户显示错误消息。通过检查temp文件夹是否仍然存在,我可以最好地判断是否出现了问题。
答案 0 :(得分:2)
假设您的意思是[Run]
部分,则无法取消该过程后期的安装。
相反,您应该考虑使用PrepareToInstall
。在这里,您需要做的就是直接通过API或在您选择的旧服务EXE上调用命令来停止和取消注册旧服务。 (对于新安装,不要忘记在服务尚不存在的情况下处理。)
此后[Files]
会正常替换文件,然后您可以[Run]
或使用代码(通过AfterInstall
或CurStepChanged(ssPostInstall)
,具体取决于您希望的时间发生)重新注册并启动服务。
不需要使用临时文件夹 - 这很好,因为这也会导致卸载问题。