Как упаковать сценарии powershell с уникальным выходным файлом setup в единый exe [duplicate]

Также, если вы используете сторонние библиотеки, убедитесь, что у вас есть правильные 32/64 битные файлы

20
задан Tshepang 6 February 2014 в 11:15
поделиться

3 ответа

Лучше для вашего пути может быть параметр AfterInstall . Следующий скрипт выполнит функцию RunOtherInstaller сразу после обработки записи файла OtherInstaller.exe. Там он пытается выполнить только что установленный файл OtherInstaller.exe, и если это не удается, он сообщает пользователю об ошибке. Обратите внимание, что вы не можете прервать установку из этой функции, поэтому не так безопасно делать то, что вы хотите таким образом:

[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program

[Files]
Source: "OtherInstaller.exe"; DestDir: "{app}"; AfterInstall: RunOtherInstaller
Source: "OtherFile.dll"; DestDir: "{app}"

[Code]
procedure RunOtherInstaller;
var
  ResultCode: Integer;
begin
  if not Exec(ExpandConstant('{app}\OtherInstaller.exe'), '', '', SW_SHOWNORMAL,
    ewWaitUntilTerminated, ResultCode)
  then
    MsgBox('Other installer failed to run!' + #13#10 +
      SysErrorMessage(ResultCode), mbError, MB_OK);
end;
25
ответ дан TLama 24 August 2018 в 03:47
поделиться

Вы можете использовать AfterInstall, ищите это в справке. Когда файл только что скопирован, я запустил функцию / процедуру, которую вы поставили как «AfterInstall:».

В этой функции / процедуре используйте Exec и запустите другой установщик.

0
ответ дан Community 24 August 2018 в 03:47
поделиться

Еще одно подходящее время для запуска установщиков обязательных условий - в функции события PrepareToInstall. (См. Примеры скриптов, предоставленных Inno для базовой структуры, и код TLama для фактического выполнения.)

Основное преимущество PrepareToInstall заключается в том, что он позволяет обрабатывать ошибки и перезагружать запросы от ребенка установщик - с помощью AfterInstall нет.

Основной недостаток этого заключается в том, что вам нужно вручную ExtractTemporaryFile что-либо, необходимое для запуска дочерней установки, поскольку это происходит до того, как файлы будут извлечены.

8
ответ дан Miral 24 August 2018 в 03:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: