【问题标题】:WinRar archive with iimg and iicon options becomes corrupted带有 iimg 和 iicon 选项的 WinRar 存档损坏
【发布时间】:2014-02-11 09:16:20
【问题描述】:

我正在尝试创建一个可自解压 (SFX) 的 rar 存档,其中包含图标和图像。我正在使用以下命令行:

winrar.exe a -r0 -sfx -ibck -z"MyConfFile.conf" -iimg"MyImage.bmp" -iicon"MyIcon.ico" MyPackage.exe @"MyFileList.txt"

问题是 - 生成的 .exe 无法解压缩。相反,它显示“存档格式未知或已损坏”。如果我只设置图标或只设置图像,那么一切都很好。但如果我同时设置,我就有麻烦了。最奇怪的事情。

【问题讨论】:

    标签: winrar sfx


    【解决方案1】:

    自解压模块的代码+位图文件的数据+图标文件的数据+自解压注释文件+其他数据(签名)首先写入自解压存档文件,然后是压缩数据的实际存档附加到文件中。

    根据RAR 5.0 archive format 技术说明文档,存档数据之前的所有数据的最大大小目前必须小于 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) 的页面,通过 Index em> 选项卡或通过 Contents 选项卡(自解压模块的第一个条目)的帮助。

    【讨论】:

      猜你喜欢
      • 2015-06-11
      • 1970-01-01
      • 1970-01-01
      • 2016-10-08
      • 1970-01-01
      • 2012-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多