2013-03-29 55 views
0

1)我安装了1.0版本的产品。Inno Setup:如何在[Files]部分捕获退出代码

2)当我试图将产品升级到2.0版本,那么现在所面临以下问题:

一)当文件正在使用innosetup抛出一个错误说,它不能代替的文件并显示中止重试忽略消息框。

所以我的要求是,当innosetup无法替换无声/交互式安装文件时,我需要知道它的退出状态,以便我可以尝试重命名该文件(正在使用中)并重试复制文件。

在此先感谢。

回答

1

没有办法做到这一点。

如果文件在安装过程中处于使用状态,您可以使用restartreplace标志计划重新启动时替换该文件。

但更好的解决方案是防止它在第一时间使用,例如,通过使用AppMutex来检测您的应用程序是否正在运行,或通过关闭后台应用程序/服务,或者通过在后台应用程序中使用最新版本的Inno与Restart Manager支持。

+0

我们已经在使用restartreplace标志。如果二进制文件具有任何文件句柄,则在重新引导机器后,重新替换标志替换二进制文件。我的要求是检测是否有任何文件处理二进制文件,然后在[文件]节中重命名旧的二进制文件。 – user1752602

+0

好的。现在再读一遍我的答案的后半部分。 – Miral

+0

>但更好的解决方案是首先防止它被使用,例如。通过使用AppMutex来检测您的应用程序正在运行, [文件]部分中有近40个二进制文件,如果使用互斥量概念,则需要在[SETUP]部分中的 “AppMutex”设置中添加所有互斥量名称,将花费大量的时间和精力。 – user1752602

相关问题