Как мне создать два разных установщика из одного и того же скрипта в Inno Setup?

Я хочу сделать "стандартную" установку для внешнего использования, но я также хочу использовать тот же сценарий и указать ему (возможно, с параметром командной строки?) Включить другой набор файлов (файлы PDB для отладки) для наших лабораторных установок. . (И сделайте совершенно другой установочный exe)

Как я могу это сделать? Является ли это возможным?

Я не вижу, как установить это в разделе [Files] (условно добавлять файлы на основе некоторого значения / параметра)

Примечание. Это не означает, что пользователю предоставляется возможность выбора ВО ВРЕМЯ установки. Я хочу, чтобы параметр времени сборки был установлен в моем файле сборки или командном файле Hudson.

Полагаю, я могу просто создать отдельный установщик для pdbs, но я бы предпочел иметь один файл для всего.


person Tim    schedule 14.06.2010    source источник


Ответы (2)


Вы можете просто использовать

#ifdef DebugVersion
File: *.pdb ...
#endif

а затем вызовите компилятор Inno следующим образом:

iscc.exe -DDebugVersion ...

Я бы также добавил что-то вроде этого, чтобы вы получали разные имена выходных файлов:

#ifdef DebugVersion
OutputBaseFileName=mysetup-dbg
#else
OutputBaseFileName=mysetup
#endif

Обратите внимание, что для этого вам, вероятно, понадобится прекомпилятор InnoSetup, который по какой-то необъяснимой причине не является частью пакета InnoSetup по умолчанию. Самый простой способ получить это - получить «Пакет быстрого запуска» со страницы загрузки InnoSetup.

person Oliver Giesen    schedule 10.09.2010
comment
Это то, что я искал. Пропавший прекомпилятор был тем, что я искал. - person Tim; 15.09.2010

Ответ прост: создайте два файла для каждого выпуска, но поместите общие вещи в третий файл и # включите его в два других.

http://rickborup.blogspot.com/2006/09/inno-setup-include-directive.html

person Nathan Osman    schedule 14.06.2010
comment
Ах, я не думал об этом. Отличная идея. Я бы предпочел просто вызвать один файл с параметром командной строки, но это, вероятно, сработает. - person Tim; 14.06.2010