SFX 模块的代码 + 位图文件的数据 + 图标文件的数据 + SFX 注释文件 + 其他数据(签名)首先写入 SFX 存档文件,然后将带有压缩数据的实际存档附加到文件。
根据RAR 5.0 存档格式技术说明文档,存档数据之前的所有数据的最大大小目前必须小于 1 MB 。
可能的解决方案:
- 通过减小位图文件的宽度/高度来减小位图文件的大小。
- 通过将颜色从真彩色减少到 256 色来减小位图文件的大小。
- 通过从图标文件中删除不需要的图标来减小图标文件的大小,因为尺寸为 16x16、24x24、32x32 和 48x48 的单个图标就足够了。一些 *.ico 文件包含多个不同尺寸的图标。标准尺寸中的单个图标足以用于 SFX 存档。甚至可以删除一些尺寸,如 24x24 和 48x48,以便图标文件只包含一个尺寸为 16x16 和 32x32 的图标。
- 通过使用自定义调色板将文件中的所有真彩色图标减少到只有 256 种颜色的图标,或者如果可能的话,甚至减少到 16 种颜色,从而减小图标文件的大小。
- 如果可能的话,请减小注释文件的大小,例如在安装前使用通配符删除文件或在 SFX 执行时向用户显示较短的文本。
- 减小 SFX 模块的大小,例如使用UPX压缩它。
但要考虑到压缩 SFX 模块本身的位图和图标必须在 SFX 模块本身的资源中,而不是单独附加。
Resource Hacker等工具可用于将标准位图替换为自己的位图,将标准图标替换为自己的图标以及更改对话框布局。即使不用像 UPX 这样的运行时打包程序压缩 SFX 模块,这也可以减少归档数据之前的数据总大小。
WinRAR的版权所有者允许使用Resource Hacker等工具自定义WinRAR的标准 SFX 模块之一的资源。在WinRAR (winrar.chm) 的帮助中查看标题为GUI RAR 和 ZIP SFX 模块(Default.SFX 和 Zip.SFX)的页面,通过索引选项卡或通过帮助的目录选项卡(自解压模块的第一个条目)。