运行 [运行] 部分在 [Files] 部分之前

Run [Run] section before [Files] section

我的安装程序将名为 launcher.zip 的文件下载到 {tmp} 文件夹,并在安装期间和安装后运行以下脚本:

[Files]
Source: "{tmp}\launchers\Launcher"; DestDir: "{app}"; Flags: onlyifdoesntexist recursesubdirs external;

[Run]
Filename: "{tmp}zipza.exe"; Parameters: "x ""{tmp}\launchers\launcher.zip"" -o""{tmp}\launchers"" * -r -aoa"; Flags: runhidden runascurrentuser;

但是这样 [Files] 部分在 [Run] 部分之前运行,因此它找不到提取到 {tmp} 文件夹的文件夹。

我可以将 [Run] 脚本提取到目标文件夹,但我想使用 [Files] 部分来设置 Flags: onlyifdoesntexist

因为我不希望它在提取时替换文件,除非选择了特定的 Component,在本例中为 launchers\reinstall (另一个脚本删除文件如果选择 Component)

所以我需要在 [Files] 部分

之前执行 [Run] 部分脚本

有什么办法吗?

而不是 运行 [Run] 部分,我 运行 要提取的 [Codes] 部分,并在我的 [=13= 中添加了 BeforeInstall ] 节

我的回答是: