Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как создать два exe-файла одним скриптом nsis?

Автор вопроса: PrakashОтветов: 2

Мне нужно создать два exe-файла с одним скриптом nsis. Один содержит zip-файл в виде полного пакета, а другой не содержит zip-файла. Я устанавливаю параметр в файле perl, который вызывает мой скрипт nsis и использует параметр в скрипте nsis. Проблема с "выходным файлом". Невозможно проверить состояние.

Пример:

передача параметра как $FULL_PKG =1 (с zip-файлом), =0 (без zip-файла) name "PKG" Strcmp ${FULL_PKG} "1" 0 1 outfile "FULLPKG.exe" outfile "PKG.exe"'

ERROR: command not valid outside section or function

nsis

Ответы

Ответ 1 · Anders

Атрибуты типа Outfile не могут быть изменены во время выполнения (Код в разделах и функциях)

Вы можете создать определения, используя /D с makensis: makensis /DNOZIP yourscript.nsi, а затем проверить наличие этого определения:

!ifdef NOZIP
Outfile nozip.exe
!else
Outfile withzip.exe
!endif
...
Section
!ifndef NOZIP
File foo.zip ;Extract the zip file
!endif
SectionEnd

Ответ 2 · Bohne

Для меня это тоже работает (возможно, в 2012 году его не было):

!if ${FULL_PKG} == 1
    OutFile "FULLPKG.exe"
!else
    OutFile "PKG.exe"
!endif

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы