在开始创建之前解压缩数据文件

时间:2011-05-13 20:53:50

标签: zip inno-setup pascal unzip

我正在使用一个使用非常大的数据文件的应用程序。我的客户想要从setup exe中单独压缩这些数据文件,然后安装程序应该在开始安装之前解压缩它们。这可能是inno吗?我对Pascal没有太多经验,所以任何帮助都会受到高度赞赏。

1 个答案:

答案 0 :(得分:2)

没有内置的Pascal脚本支持解压缩

虽然Inno Setup内部有many uncompress routines来支持在编译期间压缩文件的各种方式。这些都没有发布到Pascal Scripting语言。

仍然可以执行此操作,但您必须构建DLL以执行解压缩步骤。然后在卸载中使用此DLL。

如果您不压缩,可以使用此方法:

在Inno设置脚本的[Files]中,您可以使用external标记来引用设置中未包含的文件。

[Files]
Source: "data1.dat" DestDir: "{app}" Flags: external;

这会将与Setup.exe位于同一目录中的data1.dat复制到应用程序安装目录。

考虑

的替代方案

为数据文件构建单独的Inno安装脚本。将此脚本提供给您的客户端,以便他们可以使用编译器而不是Zip程序来运行它。

虽然默认值为lzma2/max,但它会像ZIP一样压缩数据。然后可以通过[Run]部分链接此安装,以便在安装应用程序后直接安装。

考虑的第二种选择

根据您的评论,我更了解您的问题。

您可以将所有MP3文件构建到单个安装设置中。您可以使用[Components]部分对MP3文件进行分组。这允许用户选择他们想要安装的文件组。 [Files]部分支持通配符,因此您可以指定单个目录中的所有文件,以使脚本更易于维护。

InnoSetup旨在通过设置分解方式来处理大型安装 将setup.exe分成多个文件。

[Setup]
DiskSpanning=Yes
DiskSliceSize=XXX
SlicesPerDisk=XXX
SolidCompression=no (Default but it not recommended to be set 'YES' with Huge installs)