web-applications - InnoSetup: 包括和自动安装 DirectX

  显示原文与译文双语对照的内容
0 0

我正在为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:"pathdxsetup.exe"; DestDir:"{app}"

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

但还是不起作用。

解决方案1:

应用程序安装后启动( 始终) 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;

时间: 原作者:

0 0

如果通过 [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"

原作者:
...