2013-05-20 41 views
4

我想知道如何添加额外的setup.exe并使用innosetup执行额外的exe文件与我的主exe文件。Innosetup添加多个exe文件并在主设置内执行

因为我在使用innosetup的新功能,所以请在最近3天尝试此操作。

谢谢。

+1

你会包括那些二进制文件到['[文件]'](http://www.jrsoftware.org/ishelp/index.php?topic=filessection)部分,然后从运行它们的['[运行]'](http://www.jrsoftware.org/ishelp/index.php?topic=runsection)部分。 – TLama

回答

8

最简单的方法是在[Run]部分中调用您额外的EXE。所有的EXE文件都应该添加到[Files]部分的主要设置中。您可以将它们复制到TEMP文件夹进行安装,或将它们复制到您的应用程序文件夹(如果需要)。

[Files] 
Source: "d:\ADDS\*"; DestDir: "{tmp}"; 
Flags: nocompression createallsubdirs recursesubdirs deleteafterinstall 
//contains DirectX in directx folder, VC Redist 2010 x86 and VC Redist 2010 x64 

[Run] 
Filename: "{tmp}\directx\DXSETUP.exe"; Parameters: "/silent"; 
Flags: waituntilterminated skipifdoesntexist; 
StatusMsg: "Microsoft DirectX installation. Please wait..." 
Filename: "{tmp}\vcredist_x86_2010.exe"; Parameters: "/Q"; 
Flags: waituntilterminated skipifdoesntexist; 
StatusMsg: "Microsoft Visual C++ 2010 (x86) installation. Please Wait..." 
Filename: "{tmp}\vcredist_x64_2010.exe"; Parameters: "/Q"; 
Flags: waituntilterminated skipifdoesntexist; 
StatusMsg: "Microsoft Visual C++ 2010 (x64) installation. Please wait..."; Check: IsWin64 
+0

这个答案似乎更准确的问题,因为它使用临时目录作为文件的目的地,然后执行。如果这是一个不需要复制到目标系统的设置,那更好。 [+1对两个答案虽然:-)] – TLama

+0

谢谢。你的解决方案完美运作 – reapen

+0

当文件来自Post编译时,是否可以在[run]中运行。 [_ISToolPostCompile] 名称:D:\ Cleanup.exe;参数: 名称:D:\ WinRarFullVersion.exe;参数: 名称:d:\ Setup \ *;参数: – reapen

3

Inno没有“main exe”的概念。如果你想包含两个可执行文件,那么你只需要创建多个[Files]条目。 安装完成后,您可以只有多个[Run]条目。

[Files] 
;Console 
Source: ..\Console.exe; DestDir: {app}; Flags: ignoreversion 
#ifdef debug 
Source: ..\Console.map; DestDir: {app} 
Source: ..\Console.pdb; DestDir: {app} 
#endif 
Source: ..\Console.chm; DestDir: {app} 

;Node 
Source: ..\Node.exe; DestDir: {app}; Flags: ignoreversion 
#ifdef debug 
Source: ..\Node.map; DestDir: {app} 
Source: ..\Node.pdb; DestDir: {app} 
#endif 
+0

谢谢你的有价值的信息deanna。 – reapen