Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup плюс внешние упаковщики

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

Открыть новую тему     Написать ответ в эту тему

msatmb



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
При создании больших инсталяций в InnoSetup можно значительно уменьшить их размер, воспользовавшись более мощной упаковкой, чем встроенная. Особенностям применения внешних упаковщиков с InnoSetup посвящена данная тема
 
Варианты выбора:
 
RAR: упаковка в общем хуже чем встроенная, но есть куча доп. алгоритмов (тексты, мультимедиа), поэтому может давать выигрыш на некоторых типах данных. Распаковка: только через SFX
 
7-zip: тот же алгоритм упаковки, что и встроенный (lzma), но за счёт доп. алгоритмов bcj2, delta, lzma2, ppmd и большего словаря может обеспечить лучшее сжатие. Для наилучшего сжатия рекомендуется: 64-битная еерсия, 6гб ОЗУ, Ultra7z Optimizer. Распаковка: через SFX или dll от Expeditor
Модуль распаковки архивов 7z 1.01 [18.12.2008] от ExpeditorR
 
FreeArc: тот же базовый алгоритм упаковки (lzma), но наличие множества доп. алгоритмов может обеспечить большее сжатие. Распаковка: через SFX или dll
Модуль распаковки архивов FreeArc [10.07.2009] от Bulat_Ziganshin
 
NanoZip: наилучшее сжатие в редиме -cc (распаковка 1mb/s), оптимальный режим -cO (распаковка 5mb/s). Распаковка: только через SFX
 


Все остальное в родственных темах
 
Inno Setup (создание инсталяционных пакетов)
 
Пережатиe/Pекомпрессия/Oптимизация файлов для лучшего сжатия - обсуждение того, какими утилитами/способами лучше сжимать, чтобы получить как можно меньший размер инсталятора.
 
FreeArc - бесплатный open-source архиватор для Windows и Linux, сочетающий высокую степень сжатия и большой набор возможностей

Всего записей: 178 | Зарегистр. 15-04-2007 | Отправлено: 08:31 11-11-2009 | Исправлено: juvaforza, 20:49 26-04-2011
TechneS



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Проблемма в скрипте ,при установке вылетает ошибка "Неверны входной файл для  ISPrecomExtract!" все архивы указаны правильно да и архив прекомп правильный, в папке куда устанавливается допустим игра появляется файл с расширением pcf до ничего из него не извлекается, в темп извлекаются все нужные ддлки, незнаю в чём проблемма

Всего записей: 44 | Зарегистр. 18-04-2010 | Отправлено: 23:16 10-06-2010 | Исправлено: TechneS, 23:17 10-06-2010
1ne2wo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Profrager, поясни пожалуйста на моём примере: Скажем у меня есть файл 1\111.pcf всё это обжато через FreeArc и сохранено как data1.bin. Как мне правильно всё это указать в твоей скрипте? Я сделал так:

Код:
 
repeat
       if not ISUnarcExtract  (OveralPct, 0, ExpandConstant('{src}\data1.bin'), ExpandConstant('{app}'),                false,callback, '',   '' ) then begin Error; break; end;
      if not ISSRepExtract   (OveralPct, 0, ExpandConstant('{app}\CODMW2.srep'),ExpandConstant('{app}\CODMW2.pcf'), '', true, callback           ) then begin Error; break; end; (эту строку удалил)
       if not ISPrecompExtract(OveralPct, 0, ExpandConstant('{app}\111.pcf'), ExpandConstant('{app}\1'),      true, callback           ) then begin Error; break; end;
      if not IS7ZipExtract   (OveralPct, 0, ExpandConstant('{app}\CODMW2.7z'),  ExpandConstant('{app}'),                true, callback, ''       ) then begin Error; break; end; (эту строку удалил)

После завершения установки\распаковки папка 1\ пустая. Вобщем ситуация схожая с ситуацией TechneS, разве что я наверняка не правильно указал пути...
И ещё маленькое пожелание. После нажатия кнопки "Отменить распаковку" было бы здорово если инсталятор спрашивал подтверждение этому "Вы уверены что хотите отменить распаковку? - Да\Нет"

Всего записей: 133 | Зарегистр. 10-09-2009 | Отправлено: 23:29 10-06-2010 | Исправлено: 1ne2wo, 23:32 10-06-2010
daemon_rm

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1ne2wo
хмм.. если ты обжал вместе с папкой "1" файл, то по идее он распаковался в {app}\1\
так что думаю должно быть так:

Код:
if not ISPrecompExtract(OveralPct, 0, ExpandConstant('{app}\1\111.pcf'), ExpandConstant('{app}\1')

попробуй проверь
 

Цитата:
После нажатия кнопки "Отменить распаковку" было бы здорово если инсталятор спрашивал подтверждение этому "Вы уверены что хотите отменить распаковку? - Да\Нет"

можно так

Код:
procedure CancelButtonOnClick(Sender: TObject);
begin
  if MsgBox(SetupMessage(msgExitSetupMessage), mbConfirmation, MB_YESNO) = IDYES then Cancel:=1;
end;

Всего записей: 152 | Зарегистр. 03-10-2009 | Отправлено: 23:46 10-06-2010 | Исправлено: daemon_rm, 23:56 10-06-2010
MartinUA



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не в какую не хочет 7зип архив распаковываться и всё... эта строчка в скрипте попросту пропускается, и естественно в инсталле выскакивает ошибка, что прекомповскые файлы не находит.
вот такая структура в скрипте
 
Код:
if not ISUnarcExtract  (OveralPct, 0, ExpandConstant('{src}\setup-1.arc'), ExpandConstant('{app}'),                false,callback, '',   '' ) then begin Error; break; end;
  if not ISSRepExtract   (OveralPct, 0, ExpandConstant('{app}\data.srep'),ExpandConstant('{app}\data.7z'), '', true, callback           ) then begin Error; break; end;
  if not IS7ZipExtract   (OveralPct, 0, ExpandConstant('{app}\data.7z'),  ExpandConstant('{app}'),                true, callback, ''       ) then begin Error; break; end;
  if not ISPrecompExtract(OveralPct, 0, ExpandConstant('{app}\200_data.pcf'), ExpandConstant('{app}\200_data.sga'),      true, callback           ) then begin Error; break; end;

Всего записей: 51 | Зарегистр. 12-01-2010 | Отправлено: 00:15 11-06-2010 | Исправлено: MartinUA, 01:34 11-06-2010
1ne2wo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
daemon_rm, по поводу твоего совета с путями - всё сделал как ты указал, папка 1 в итоге пустая по завершении распаковки. Места на дисках достаточно.
 
Насчет совета с кнопкой о отмене - видимо я не правильно вставляю эту строку сюда:  

Код:
 
procedure CurStepChanged(CurStep: TSetupStep);
begin
 if MsgBox(SetupMessage(msgExitSetupMessage), mbConfirmation, MB_YESNO) = IDYES then Cancel:=1;
  if CurStep = ssPostInstall then begin
    MyCancelButton:=TButton.Create(WizardForm);
    with MyCancelButton do begin
       Parent:=WizardForm;
       Width:=135;
       Caption:='Отменить распаковку';
       Left:=360;
       Top:=WizardForm.cancelbutton.top;
       OnClick:=@CancelButtonOnClick;
    end;

Воткнул сюда иначе общий код ругается на двойной OnClick:=@CancelButtonOnClick. В итоге инсталятор предлагает себя закрыть после нажатия кнопки "Установить" и после каждой стадии распаковки.

Всего записей: 133 | Зарегистр. 10-09-2009 | Отправлено: 00:30 11-06-2010 | Исправлено: 1ne2wo, 00:34 11-06-2010
daemon_rm

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1ne2wo
найди

Код:
procedure CancelButtonOnClick(Sender: TObject);
begin
 Cancel:=1;
end;

и замени на это

Код:
procedure CancelButtonOnClick(Sender: TObject);  
begin  
  if MsgBox(SetupMessage(msgExitSetupMessage), mbConfirmation, MB_YESNO) = IDYES then Cancel:=1;  
end;

 
по поводу путей: чет не сразу заметил , надо прописать имя обработанного файла

Код:
if not ISPrecompExtract(OveralPct, 0, ExpandConstant('{app}\1\111.pcf'), ExpandConstant('{app}\1\1.file'),      true, callback           ) then begin Error; break; end;

Всего записей: 152 | Зарегистр. 03-10-2009 | Отправлено: 01:15 11-06-2010 | Исправлено: daemon_rm, 01:22 11-06-2010
Anatole1

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Profrager собстно isdone 0.3 ошибки:
1) Пропускает распаковку второго запроса 7z
2) Слетает в небытьё при распаковке 3-тьего arc архива, либо пишит что произошла неизвестная ошибка) Тест был проведён на новом принце с arc-sre-7z!)

Всего записей: 26 | Зарегистр. 10-03-2010 | Отправлено: 01:31 11-06-2010
MartinUA



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
1) Пропускает распаковку второго запроса 7z  
2) Слетает в небытьё при распаковке 3-тьего arc архива, либо пишит что произошла неизвестная ошибка) Тест был проведён на новом принце с arc-sre-7z!)
хммм, не может такого быть, у меня например арк не слеатет никогда (я его вместо 7зип какраз на третей позиции использую), а вот 7зип действительно слетает.

Всего записей: 51 | Зарегистр. 12-01-2010 | Отправлено: 01:42 11-06-2010 | Исправлено: MartinUA, 01:43 11-06-2010
Anatole1

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MartinUA
может 3 подряд арка поставь и слетит:
   
Код:
 if not ISUnarcExtract  (OveralPct, 0, ExpandConstant('{src}\DATA1.bin'), ExpandConstant('{app}'),                false,callback, '',   '' ) then begin Error; break; end;
       if not ISUnarcExtract  (OveralPct, 0, ExpandConstant('{src}\DATA2.bin'), ExpandConstant('{app}'),                false,callback, '',   '' ) then begin Error; break; end;
  if not ISUnarcExtract  (OveralPct, 0, ExpandConstant('{src}\DATA3.bin'), ExpandConstant('{app}'),                false,callback, '',   '' ) then begin Error; break; end;

 
Добавлено:
В целом после исправления всех этих ошибко будет отлично и цены этому плагу не  будет)

Всего записей: 26 | Зарегистр. 10-03-2010 | Отправлено: 01:48 11-06-2010
MartinUA



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
может 3 подряд арка поставь и слетит:

хммм, не знаю не знаю, только что так сделал, всё нормально распаковывает.
 

Цитата:
В целом после исправления всех этих ошибко будет отлично и цены этому плагу не  будет)
в этом Панчо вряТли переубедить, он досихпор не верит что это норм плагин.

Всего записей: 51 | Зарегистр. 12-01-2010 | Отправлено: 02:20 11-06-2010
Anatole1

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
нет) я пытался хотябы распаковать принца с этим плагином! Всё четно!  Ошибки на разных стадиях, как я не крутил архивы не игра не разу не поставилась, isarc+issrep вообщем жду следующего билда!
 
Добавлено:
Вернусь сюда к 0.6 версии)

Всего записей: 26 | Зарегистр. 10-03-2010 | Отправлено: 02:53 11-06-2010 | Исправлено: Anatole1, 03:01 11-06-2010
1ne2wo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
daemon_rm, спасибо большое, что всё объяснил. Теперь всё корректно работает. Только есть ещё вопрос, как правильно прописать опирации для нескольких *.bin файлов? Скажем есть data1.bin (в нем 111.pcf) и data2.bin (в нем 222.pcf и 333.pcf). Думаю что, как-то так...:

Код:
 
    repeat
      if not ISUnarcExtract  (OveralPct, 0, ExpandConstant('{src}\data1.bin'), ExpandConstant('{app}'),                false,callback, '',   '' ) then begin Error; break; end;
      if not ISUnarcExtract  (OveralPct, 0, ExpandConstant('{src}\data2.bin'), ExpandConstant('{app}'),                false,callback, '',   '' ) then begin Error; break; end;
       if not ISPrecompExtract(OveralPct, 0, ExpandConstant('{app}\1\111.pcf'), ExpandConstant('{app}\1\111.dat'),      true, callback           ) then begin Error; break; end;
       if not ISPrecompExtract(OveralPct, 0, ExpandConstant('{app}\2\222.pcf'), ExpandConstant('{app}\2\222.dat'),      true, callback           ) then begin Error; break; end;
       if not ISPrecompExtract(OveralPct, 0, ExpandConstant('{app}\2\333.pcf'), ExpandConstant('{app}\2\333.dat'),      true, callback           ) then begin Error; break; end;
    until true;

Вся эта возня с примерами заставляет вспомнить 1ый класс школы и какую-нибудь математику с задачками

Всего записей: 133 | Зарегистр. 10-09-2009 | Отправлено: 07:12 11-06-2010
TechneS



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
А насчёт извлечения файлов pcf у меня у одного ошибка? или ни кто его ещё не пробывал?

Всего записей: 44 | Зарегистр. 18-04-2010 | Отправлено: 08:39 11-06-2010
K9000

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Profrager
А исходники откроешь? А то вроде как 7-zip по LGPL требует. Да и поковырять самому хочется =)

Всего записей: 341 | Зарегистр. 05-05-2010 | Отправлено: 09:04 11-06-2010 | Исправлено: K9000, 09:33 11-06-2010
Profrager



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Начнем по порядку
TechneS

Цитата:
Проблемма в скрипте ,при установке вылетает ошибка "Неверны входной файл для  ISPrecomExtract!" все архивы указаны правильно да и архив прекомп правильный, в папке куда устанавливается допустим игра появляется файл с расширением pcf до ничего из него не извлекается, в темп извлекаются все нужные ддлки, незнаю в чём проблемма

когда вылезает ошибка "Неверны входной файл для  ISPrecomExtract!" значит в самом начале функции поиском не нашелся заданный тобой файл. Или реально не так задал, или в предыдущей команде этот pcf не распаковался.Когда эта ошибка вылезает посмотри есть ли действительно именно этот файл, именно в этой директории.
daemon_rm

Цитата:
можно так  
Код:procedure CancelButtonOnClick(Sender: TObject);  
begin  
  if MsgBox(SetupMessage(msgExitSetupMessage), mbConfirmation, MB_YESNO) = IDYES then Cancel:=1;  
end;

Давно хотел добавить. Спасибо, в следующий скрипт добавлю.
Anatole1

Цитата:
2) Слетает в небытьё при распаковке 3-тьего arc архива, либо пишит что произошла неизвестная ошибка) Тест был проведён на новом принце с arc-sre-7z!)

Наделал кучу арков, потестил. Действительно слетает, но не на каком-то определенном походе, а на определенных архивах на определенных названиях распаковываемых файлов. Исправил это. Теперь у меня вроде перестало вылетать с arc архивов.

Цитата:
1) Пропускает распаковку второго запроса 7z

Потестил несколько архивов, действительно какая-то ерунда происходит. Буду дебажить

Цитата:
Добавлено:  
Вернусь сюда к 0.6 версии)

кудаааа, а кто тестить то будет? Как баги то выявлять? Я же не могу все предусмотреть. Я провел пару экспериментов с распаковкой тестового скрипта, все прошло удачно. Но много же разных нюансов возникает. И у всех разные потребности, кои я предугадать не могу.
1ne2wo
тебе лучше будет сделать так:

Код:
 
    repeat
      if not ISUnarcExtract  (OveralPct, 0, ExpandConstant('{src}\data1.bin'), ExpandConstant('{app}'),                false,callback, '',   '' ) then begin Error; break; end;
       if not ISPrecompExtract(OveralPct, 0, ExpandConstant('{app}\1\111.pcf'), ExpandConstant('{app}\1\111.dat'),      true, callback           ) then begin Error; break; end;
      if not ISUnarcExtract  (OveralPct, 0, ExpandConstant('{src}\data2.bin'), ExpandConstant('{app}'),                false,callback, '',   '' ) then begin Error; break; end;
       if not ISPrecompExtract(OveralPct, 0, ExpandConstant('{app}\2\222.pcf'), ExpandConstant('{app}\2\222.dat'),      true, callback           ) then begin Error; break; end;
       if not ISPrecompExtract(OveralPct, 0, ExpandConstant('{app}\2\333.pcf'), ExpandConstant('{app}\2\333.dat'),      true, callback           ) then begin Error; break; end;
    until true;

но и твой варинт должен работать
 
Добавлено:
K9000

Цитата:
А то вроде как 7-zip по LGPL требует.

он в неизменном виде находится.Я 7z.dll с ISDone.dll напрямую в память загружаю) Открою исходники когда все будет готово и все будет работать без багов) лет через 10

Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 09:53 11-06-2010 | Исправлено: Profrager, 10:24 11-06-2010
TechneS



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Profrager
Странно ну как бы все проверил все пути правильно указаны и имена и расширения и во время ошибки файл pcf находится в папке от куда он и должен извлекаться и что самое интересно эти строчки пути к файлом я копировал в первую версию там всё проходит на ура, без единой ошибки

Всего записей: 44 | Зарегистр. 18-04-2010 | Отправлено: 10:33 11-06-2010
Profrager



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TechneS
дай конец скрипта, где все команды выполняются, и распиши где какие файлы у тебя распаковывает каждая операция

Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 10:42 11-06-2010
1ne2wo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Profrager, благодарю, кажется суть уловил. Запрос на отмену распаковки тоже радует. Скажи а планируешь ли ты как-нибудь усовершенствовать систему прогресс бара? Скажем прикручивать таймер или избавляться от манипуляций с record.inf? И ещё вопрос - как к твоему скрипту применить систему компонентов (ну когда 2 и более локализаций к игре), что если каждый перевод будет в своем отдельном *.bin файле, как это правильно прописать?

Всего записей: 133 | Зарегистр. 10-09-2009 | Отправлено: 10:47 11-06-2010
EmZADE

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Profrager
Спасибо за возврат установки процентов вручную!
 
K9000

Цитата:
А исходники откроешь? А то вроде как 7-zip по LGPL требует. Да и поковырять самому хочется =)

Гы, началось
И ключи от квартиры - где деньги лежат
 
1ne2wo

Цитата:
или избавляться от манипуляций с record.inf?

Так он уже сделал выбор на наш вкус, либо с record.inf либо без него, читай в скрипте подробности.

Всего записей: 12 | Зарегистр. 01-06-2010 | Отправлено: 11:18 11-06-2010
1ne2wo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EmZADE

Цитата:
Цитата:или избавляться от манипуляций с record.inf?  
 
Так он уже сделал выбор на наш вкус, либо с record.inf либо без него, читай в скрипте подробности.

Да я имел ввиду вообще всё это как-то модернизировать, хотя уже и наловчился с ним работать. Просто всё как-то необычно реализовано Идей правда нет, но думаю прогресс бару в этом скрипте есть куда расти.

Всего записей: 133 | Зарегистр. 10-09-2009 | Отправлено: 11:23 11-06-2010
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup плюс внешние упаковщики


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru