[英]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..."
但是还是不行..
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.