首页 > 解决方案 > Inno Setup - 运行脚本在第一次尝试新机器时不起作用

问题描述

我使用Inno Setup Compiler 6.0.2创建了一个简单的可执行 (.exe) 文件,用于安装 Windows 应用程序。

.exe 文件调用解压缩“Application.zip”文件并更新环境变量的 vbscript “Setup.vbs”

当我在新机器上第一次运行 .exe 文件时,.vbs 文件没有被执行。但是,从第二次尝试开始,它工作正常。这是一个已知问题还是有任何解决方案?

这是我用来调用运行 .vbs 文件的代码片段

[Code]
function PrepareToInstall(var NeedsRestart: Boolean): String;
    var ResultCode: integer;
begin
    ShellExec('',ExpandConstant('{app}\{#MyAppExeName}'), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
end;

更新

我希望 .vbs 在安装之前执行。所以,我试过ExtractTemporaryFile了,我仍然面临同样的问题。不确定下面的代码有什么问题。

#define MyAppExeName "Setup.vbs"

[Files]
Source: "..\Application\Installation_Setup\Setup.vbs"; DestDir: "{app}"; Flags: ignoreversion

[Code]
function PrepareToInstall(var NeedsRestart: Boolean): String;
var
  ResultCode: integer;
begin
  ExtractTemporaryFile('{#MyAppExeName}');
  ShellExec('',ExpandConstant('{app}\{#MyAppExeName}'), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
end; 

标签: installationinno-setuppascalscript

解决方案


PrepareToInstall发生安装之前。当您执行一个已安装的文件时,它在您调用它时还不存在。

可能的解决方案


推荐阅读