Как установить распространяемый DirectX из Inno-setup? - PullRequest
2 голосов
/ 04 января 2012

Я не нашел ни одного совета по установке DirectX на веб-сайте Inno-Setup. Итак, есть ли пример установочного скрипта? Я знаю, что должен добавить в раздел [Run] что-то вроде этого:

Filename: "{src}\DirectX\DXSETUP.exe"; WorkingDir: "{src}\DirectX"; Parameters: "/silent"; Check: DirectX; Flags: waituntilterminated; BeforeInstall: DirectXProgress;

Но как включить его в установочный файл (временная папка?), Как его распаковать, т. Д.?

1 Ответ

6 голосов
/ 04 января 2012

Чтобы включить его в настройку, вы можете установить его на {tmp}, а затем [Run] оттуда.

Правильный способ установки такого рода требований - извлечь код и вызвать Exec() для него в функции события PrepareToInstall():

function PrepareToInstall(var NeedsRestart: Boolean): String;
var
  InstallerResult: integer;
begin
  //Check if .Net is available already
  if NeedsDirectX() then begin
    ExtractTemporaryFile('DXSETUP.exe');
    if Exec(ExpandConstant('{tmp}\DXSETUP.exe'), '', '', SW_SHOW, ewWaitUntilTerminated, InstallerResult) then begin
      case InstallerResult of
        0: begin
          //It installed successfully (Or already was), we can continue
        end;
        else begin
          //Some other error
          result := 'DirectX installation failed. Exit code ' + IntToStr(InstallerResult);
        end;
      end;
    end else begin
      result := 'DirectX installation failed. ' + SysErrorMessage(InstallerResult);
    end;
  end;
end;

В ISXKB есть статья о том, как определять установленные версии .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...