Gnom3 Цитата: ShadowHawk
Цитата: DiskSpanning=yes
SlicesPerDisk=1
DiskSliceSize=2100000000
DiskClusterSize=4096
ReserveBytes=0
Compression=none
SolidCompression=no
это все вообще можно удалить, если внешние анпакеры используеш, это раз. Файлы, которые инсталлятор использует для себя, нужно указывать в самом начале секции файлс - это два.
Для этих файлов нужно задавать флаг solidbreack:
Спс! Никаких внешних анпакеров не использую. Необходимо максимально быстро запускать инсталлятор и так же быстро устанавливать. Т.е. лучший вариант если все файлы входящие в инсталлятор (нужные как для самого инсталлятора - красявости или DLL`ки и так же файлы для самой установки программы ) просто без изменения лежали пусть даже в BIN`е, но к ним был максимально быстрый доступ.
Секции [Files] на данный момент:
[more]
[Files]
; не загружаемые данные
Source: compiler:dll pack\descctrl.dll; Flags: dontcopy solidbreak noencryption
Source: compiler:dll pack\fairy.dll; Flags: dontcopy
Source: compiler:dll pack\iswin7.dll; Flags: dontcopy
Source: compiler:dll pack\isgsg.dll; Flags: dontcopy
Source: compiler:dll pack\ISSkin.dll; Flags: dontcopy
; картинки
Source: PIC\logo-7.png; Flags: dontcopy
Source: PIC\kubik.png; DestDir: "{tmp}"; Flags: dontcopy
Source: PIC\kubik_mini3_поворот на 180.bmp; DestDir: "{tmp}"; Flags: dontcopy
Source: PIC\consultant.bmp; DestDir: "{tmp}"; Flags: dontcopy
#sub AddOsnBaseF
#define _pos1 = pos(";", ib[i])
#define _pos2 = pos(":", ib[i])
#define _pos3 = pos("/", ib[i])
#define _pos4 = pos("\", ib[i])
#define _pos5 = pos("|", ib[i])
#define _len1 = _pos1-1
#define _len2 = _pos2-_pos1-1
#define _len3 = _pos3-_pos2-1
#define _len4 = _pos4-_pos3-1
#define _len5 = _pos5-_pos4-1
#define _len6 = len(ib[i])-_len5-1
#define _ib = copy(ib[i], 0, _len1)
#define _n = copy(ib[i], _pos1 + 1, _len2)
#define _name1 = copy(ib[i], _pos2 + 1, _len3)
#define _name2 = copy(ib[i], _pos3 + 1, _len4)
#define _name3 = copy(ib[i], _pos4 + 1, _len5)
#define _distr = copy(ib[i], _pos5 + 1, _len6)
#define _path = AddBackslash(AddBackslash(SourcePath) + "Source\" + osn_base + "\BASE\" + _ib)
#if FileExists(_path+_ib+ext[0])+FileExists(_path+_ib+ext[1])+FileExists(_path+_ib+ext[2])+FileExists(_path+_ib+ext[3])+FileExists(_path+_ib+ext[4])+FileExists(_path+_ib+ext[5])+FileExists(_path+_ib+ext[6])+FileExists(_path+_ib+ext[7])+FileExists(_path+_ib+ext[8])+FileExists(_path+_ib+ext[9])+FileExists(_path+_ib+ext[10])+FileExists(_path+_ib+ext[11])
Source: Source\{#osn_base}\BASE\{#_ib}\*; DestDir: {app}\BASE\{#_ib}; Components: Structure\ib\osn\{#_name1}\{#_ib}; Flags: recursesubdirs;
Source: Source\RECEIVE\{#_ib}*.ANS; DestDir: {app}\RECEIVE; Components: Structure\ib\osn\{#_name1}\{#_ib}; Flags: recursesubdirs;
Source: Source\{#Structure}\DISTR\{#_distr}*.din; DestDir: {app}\DISTR; Components: Structure\ib\osn\{#_name1}\{#_ib}; Flags: recursesubdirs;
#endif
#endsub
#sub AddDopBaseF
#define _pos1 = pos(";", ib[i])
#define _pos2 = pos(":", ib[i])
#define _pos3 = pos("/", ib[i])
#define _pos4 = pos("\", ib[i])
#define _pos5 = pos("|", ib[i])
#define _len1 = _pos1-1
#define _len2 = _pos2-_pos1-1
#define _len3 = _pos3-_pos2-1
#define _len4 = _pos4-_pos3-1
#define _len5 = _pos5-_pos4-1
#define _len6 = len(ib[i])-_len5-1
#define _ib = copy(ib[i], 0, _len1)
#define _n = copy(ib[i], _pos1 + 1, _len2)
#define _name1 = copy(ib[i], _pos2 + 1, _len3)
#define _name2 = copy(ib[i], _pos3 + 1, _len4)
#define _name3 = copy(ib[i], _pos4 + 1, _len5)
#define _distr = copy(ib[i], _pos5 + 1, _len6)
#define path = AddBackslash(AddBackslash(SourcePath) + "Source\" + dop_base + "\" + _ib)
#if FileExists(path+_ib+ext[0])+FileExists(path+_ib+ext[1])+FileExists(path+_ib+ext[2])+FileExists(path+_ib+ext[3])+FileExists(path+_ib+ext[4])+FileExists(path+_ib+ext[5])+FileExists(path+_ib+ext[6])+FileExists(path+_ib+ext[7])+FileExists(path+_ib+ext[8])+FileExists(path+_ib+ext[9])+FileExists(path+_ib+ext[10])+FileExists(path+_ib+ext[11])
Source: Source\{#dop_base}\{#_ib}\*; DestDir: {app}\BASE\{#_ib}; Components: Structure\ib\dop\{#_name1}\{#_ib}; Flags: recursesubdirs;
Source: Source\RECEIVE\{#_ib}*.ANS; DestDir: {app}\RECEIVE; Components: Structure\ib\dop\{#_name1}\{#_ib}; Flags: recursesubdirs;
Source: Source\{#Structure}\DISTR\{#_distr}*.din; DestDir: {app}\DISTR; Components: Structure\ib\dop\{#_name1}\{#_ib}; Flags: recursesubdirs;
#endif
#endsub
; список каталогов для "ОКНА выбора КОМПОНЕНТОВ"
; структура
Source: Source\{#Structure}\SYSTEM\*; DestDir: {app}\SYSTEM; Components: Structure; Flags: recursesubdirs;
Source: Source\{#Structure}\CONS.EXE; DestDir: {app}; Components: Structure;
Source: Source\{#Structure}\cons.chm; DestDir: {app}; Components: Structure;
Source: Source\{#Structure}\vr*.res; DestDir: {app}; Components: Structure;
; основные ИБ
// Source: Source\{#osn_base}\BASE\ACN\*; DestDir: {app}\BASE\ACN; Flags: recursesubdirs; Components: Structure\ib\osn\ACN; Check: DirExists(ExpandConstant('{#osn_base}\BASE\ACN'))
#for {i = 0; i < countIb; i++} AddOsnBaseF
; дополнительные ИБ
// Source: Source\Dop_Base\ADV\*; DestDir: {app}\BASE\ADV; Flags: recursesubdirs; Components: Structure\ib\dop\ADV;
// Check: DirExists(ExpandConstant('D:\-Installer-\.ConsDemo\Source\Dop_Base\ADV'))
// DirExists(ExpandConstant({SourcePath}) Source\{#osn_base}\BASE\ACN)")
#for {i = 0; i < countIb; i++} AddDopBaseF
Source: Source\RECEIVE\CONS*.ANS; DestDir: {app}\RECEIVE; Components: Structure\ib; Flags: recursesubdirs;
[/more]
Верно ли я понял что мне необходимо прописать??? :
...
[setup]
SolidCompression=no /* уже прописано */
...
[files]
// а здесь дописать каждому файлу
... Flags: solidbreak noencryption nocompression ...
...
верно?
И попутно вопрос - можно ли оптимизировать код тот что выше (в секции [Files], я и секцию [Components] так же на массивах сделал)- что то я с массивами заморочился но по другому не допер как сделать - дело в том что каждый файл необходимо проверять на наличие и их (т.е. файлов) может быть несколько тысяч (и несколько каждых лежат в своем каталоге ) - прописывать каждый - это КОД вырастит хз на сколько а править потом и сверять мне кажется не рентабельно да и глупо
Заранее спасибо!
Добавлено: Gnom3 Перекомпилировал с новыми ключами - результат тотже.
Но проблема все-таки решилась.
Оказалось что на всех компьютерах где я проверял антивирус настроен "параноидально"
Так что ВОПРОС о медленности и зависании в памяти СНЯТ. ( Спс! в любом случае
, т.к. думаю ключи должны ускорить процесс инсталляции - ну надеюсь!)
Осталось - есть ли мысли по поводу оптимизации секции [Files].