5

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...
4

2 回答 2

4

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

于 2013-05-13T08:05:42.440 回答
3

Inno 除了自己的档案(通常比 7Zip 压缩得更好)之外,没有任何从任何其他地方提取文件的本机方法。

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

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

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

于 2013-05-13T11:28:30.290 回答