如何在安装过程中将嵌入式存档提取到磁盘

时间:2013-05-13 07:58:48

标签: inno-setup

我的设置脚本中嵌入了7Zip archive 是否存在将内容提取到目标文件夹的“本地”方式? 如果没有任何关于如何实现这一目标的提示?

更新了我的实施。感谢提示TLama

[Files]    
Source: "Documentation.7zip"; DestDir: "{tmp}"    
Source: "7za.exe"; DestDir: "{tmp}"

[Run]
Filename: "{tmp}\7za.exe"; Parameters: "x -o""{app}"" ""{tmp}\Documentation.7zip""";     Flags: runhidden; Description: "{cm:InstallingDocumentation}"; StatusMsg: "{cm:InstallingDocumentationStatus}"

[CustomMessages]
en.InstallingDocumentation=Documentation Files
en.InstallingDocumentationStatus=Installing Documentation Files. This may take several minutes...

2 个答案:

答案 0 :(得分:4)

不,没有本地方法从InnoSetup安装程序中提取7zip文件。但是,您可以获得7zip库的副本which is redistributable,并从InnoSetup脚本的代码部分调用它。

答案 1 :(得分:3)

Inno没有任何本地方法从其自身档案中提取文件(通常压缩比7Zip更好)。

然而,Inno Setup可以使用通配符来包含要安装的文件:

[Files]
Source: "Documentation\*.*"; DestDir: "{app}/Documentation/";

如果您有许多小文件,使用solidcompression标志将提高压缩性能和大小。