Архив WinRar с параметрами iimg и iicon поврежден

Я пытаюсь создать самораспаковывающийся (SFX) rar-архив, в котором будут и значок, и изображение. Я использую следующую командную строку:

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

Проблема в том, что полученный .exe не может быть распакован. Вместо этого пишет: «Архив либо в неизвестном формате, либо поврежден». Если ставлю только иконку или только изображение, то все нормально. Но если я поставлю оба, у меня будут проблемы. Самое странное.


person Gal Shadeck    schedule 11.02.2014    source источник


Ответы (1)


Код модуля SFX + данные растрового файла + данные файла значка + файл комментария SFX + другие данные (подпись) сначала записываются в файл архива SFX, а затем сам архив со сжатыми данными добавляется к файл.

Максимальный размер всех данных, предшествующих архивным данным, должен быть на данный момент меньше 1 МБ в соответствии с RAR 5.0. архивный формат технической документации.

Возможные решения:

  • Уменьшите размер растрового файла, уменьшив его ширину/высоту.
  • Уменьшите размер растрового файла, уменьшив количество цветов с истинного до 256 цветов.
  • Уменьшите размер файла значка, удалив ненужные значки из файла значка, поскольку достаточно одного значка размером 16x16, 24x24, 32x32 и 48x48. Некоторые файлы *.ico содержат несколько значков разных размеров. Для SFX-архива достаточно одной иконки в стандартных размерах. Можно даже удалить некоторые размеры, такие как 24x24 и 48x48, чтобы файл значка содержал только один значок размером 16x16 и 32x32.
  • Уменьшите размер файла значка, уменьшив все значки в реальном цвете в файле до значков только с 256 цветами с использованием пользовательской палитры или даже до 16 цветов, если это возможно.
  • Уменьшите размер файла комментариев, если это возможно, например, используйте подстановочные знаки для файлов, которые нужно удалить перед установкой, или более короткий текст, отображаемый пользователю при выполнении SFX.
  • Уменьшите размер модуля SFX, например, сжав его с помощью UPX.

Но учтите, что при сжатии самого SFX-модуля растровое изображение и значок должны находиться в ресурсах самого SFX-модуля, а не добавляться отдельно.

Такой инструмент, как Resource Hacker, можно использовать для замены стандартного растрового изображения собственным растровым изображением и стандартных значков собственными. значки, а также изменение макета диалогового окна. Это уменьшает общий размер данных, предшествующих архивным данным, даже без сжатия модуля SFX с помощью упаковщика времени выполнения, такого как UPX.

Использование таких инструментов, как Resource Hacker, для настройки ресурсов одного из стандартных SFX-модулей WinRAR разрешено владельцами авторских прав WinRAR. См. в справке WinRAR (winrar.chm) страницу с заголовком GUI RAR и ZIP SFX модули (Default.SFX и Zip.SFX) через Индекс em> или через вкладку Содержание (первая запись Самораспаковывающиеся модули) справки.

person Mofi    schedule 25.07.2014