使用Inno-Setup将特定任务的文件编译为其他安装文件(setup.exe,files.bin)吗?

时间:2018-09-30 03:42:07

标签: inno-setup

简介

一个名为 FitGirl 的盗版游戏网站的作者,不时发布视频游戏的“重新包装”,该游戏由使用Inno-setup制作的安装程序组成。

这类安装程序的有趣特征是基于组件的(或不确定基于任务的),例如,如果视频游戏重新包装中包含与各种语言相关的音频文件,则它们是可用的要单独安装,我的意思是每个“语音包”都编译在不同的文件中,因此您可以看到:setup.exe,english.bin,spanish.bin等...,如果缺少.bin文件之一,它不会影响setup.exe。

问题

我想知道如何在个人安装程序中复制它。例如,我有一个要安装的程序,其中包含要用于该程序的个人配置文件,然后,我想创建一个任务来确定是否应在程序中安装个人设置,然后将这些文件编译到另一个文件中,而不是在setup.exe中。与上述网站的作者使用的是重新打包安装程序的“语音包”相同。

作为我想做的事的一个例子:

[Files]
; Public Files
Source: {app}\*; DestDir: {app}; Flags: recursesubdirs createallsubdirs ignoreversion

; Personal files (program file settings that contains sensible data of my person)
Source: {localappdata}\*; DestDir: {localappdata}; Tasks: PersonalData; Flags: recursesubdirs createallsubdirs ignoreversion

[Tasks]
Name: PersonalData; Description: Install ElektroStudios E-mail settings

因此,在该示例中,我希望将{localappdata}的文件编译为其他文件,例如:“ personal_settings.bin”。这样,我可以分发安装程序(setup.exe)而不分发我的个人数据(personal_settings.bin),并且可以在我的个人计算机中使用安装程序来安装具有“ personal_settings”的{localappdata}文件。 bin”。

RESEARCH

反编译一个 FitGirl 安装程序(《侏罗纪世界:进化》)后,这是我得到的重建代码中最相关的部分:

[Setup]
AppName=Jurassic World: Evolution
...

[Components]
Name: text; Description: Main game files; Types: full custom
Name: local; Description: Game language; Types: full custom
...

[Types]
Name: custom; Description: {cm:TypeCustomDesc}
Name: full; Description: {cm:TypeFullDesc}
...

但是我感觉它丢失了所有内容...我不知道该安装程序如何将语音包单独打包到.bin文件中,而不是setup.exe,并且在安装向导中都可以选择

1 个答案:

答案 0 :(得分:1)

Inno Setup不支持此功能。

所以:

  • 该安装程序使用Inno Setup的自定义版本;或
  • 他们在Pascal Script中实现了自己的解压缩(在构建安装程序时,他们使用自己的过程分别打包文件)。