我正在尝试从inno设置文件的run部分安装几个可执行文件。
我的File部分看起来像这样。
[Run]
#if GNTCChecked == "True"
Filename: "{tmp}\Utilities\SDK\setup.exe"; Description: "Install Foo"; Flags: nowait postinstall shellexec
Filename: "{tmp}\Utilities\SDK\foobar.exe"; Description: "Install Foo Update";
Flags: nowait postinstall shellexec
#endif
需要安装第一个文件才能安装第二个文件。
基本上,如果未安装第一个文件,第二个将抛出错误,说明核心文件不在文件中。系统,因此无法安装。
目前,第一个文件正在执行,第二个文件在第一个文件完成安装之前一直执行。
答案 0 :(得分:2)
只有在第一个任务完成后,我才需要执行一个文件,然后执行另一个文件。
[Run]
#if GNTCChecked == "True"
Filename: "{tmp}\Utilities\SDK\setup.exe"; Description: "Install Foo";
Flags: postinstall shellexec waituntilterminated
Filename: "{tmp}\Utilities\SDK\foobar.exe"; Description: "Install Foo Update";
Flags: postinstall
#endif
这是我阅读的信息,使我得到了答案。
shellexec 如果Filename不是直接可执行文件(.exe或.com文件),则需要此标志。设置此标志后,“文件名”可以是文件夹或任何注册的文件类型-包括.chm,.doc等。该文件将使用与用户系统上的文件类型相关联的应用程序打开,就像用户在资源管理器中双击该文件一样。
默认情况下,使用shellexec标志时,它不会等到生成的进程终止。如果需要,必须添加标志
waituntilterminated
。请注意,如果没有产生新的进程,例如,如果Filename指定了文件夹,它就不会也不会等待。