Inno Setup - не работает скрипт с первой попытки для новой машины - PullRequest
2 голосов
/ 10 июня 2019

Я создал простой исполняемый файл (.exe), используя Inno Setup Compiler 6.0.2 для установки приложения Windows.

.exe-файл вызывает vbscript "Setup.vbs ", который распаковывает файл" Application.zip "и обновляет переменные среды.

Когда я впервые запускаю .exe файл на новом компьютере, файл .vbs нене выполняется .Но со второй попытки он работает нормально.Это известная проблема или есть какое-то решение для этого?

Вот фрагмент кода, который я использую для вызова файла .vbs run

[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; 

1 Ответ

1 голос
/ 10 июня 2019

PrepareToInstall происходит до установки. Когда вы выполняете установленный файл, он еще не существует на момент его вызова.

Возможные решения

...