簡體   English   中英

InnoSetup:包含並自動安裝DirectX

[英]InnoSetup: include and auto-install DirectX

我正在為我的nodewebkit應用程序准備一個窗口安裝程序。 這是一個使用Three.js的應用程序,因此需要DirectX。

如何修改我的installer.iss以在應用程序之前(或之后,並不重要)安裝DirectX?

我有:

[Code]
function installDirectX() : Boolean;
begin
  ....
end;

[Run]
Filename "{app}\{#MyAppName}"; Description: "...."; Flags: nowait postinstall skipfsilent

更多規格

基本上,我想在安裝程序中包含directx.exe,但我還想啟動directx.exe(僅當尚未安裝時-但這是一個加號- )。

更新

正如RobeN建議的那樣,我嘗試:

[Files]
Source: "path\dxsetup.exe"; DestDir: "{app}"

[Run]
Filename: "dxsetup.exe"; WorkingDir: "{app}"; Parameters: "/silent"; Flags: waitilterminated  skipifdoesntexist; StatusMsg: "Installing Microsoft DirectX..."

但是還是不行..

解決方案1:

App安裝后,此啟動(始終)啟動的DirectX安裝程序。

[Files]
Source: "dxsetup.exe"; DestDir: "{app}"; AfterInstall: DirecXinstaller

[Code]
procedure DirecXinstaller;
var
  ResultCode: Integer;
begin
  if not Exec(ExpandConstant('{app}\dxsetup.exe'), '', '', SW_SHOWNORMAL,
    ewWaitUntilTerminated, ResultCode)
  then
    MsgBox('Other installer failed to run!' + #13#10 +
      SysErrorMessage(ResultCode), mbError, MB_OK);
end;

如果通過[Run]部分

[Files]
Source: "X:\YOUR_GAMEFILES\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs
Source: "d:\DirectX\*"; DestDir: "{tmp}"; Flags: nocompression createallsubdirs 
 recursesubdirs deleteafterinstall overwritereadonly ignoreversion uninsremovereadonly
;here you point to the folder with full DirectX intaller

[Run]
Filename: "{tmp}\DXSETUP.exe"; WorkingDir: "{tmp}"; Parameters: "/silent"; 
 Flags: waituntilterminated skipifdoesntexist; 
 StatusMsg: "Installing Microsoft DirectX..."
Filename: "{app}\YOURGAMEEXE.exe"; WorkingDir: "{app}"; 
 Flags: nowait postinstall runascurrentuser skipifsilent; Description: "Run MY GAME"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM