Установщик NSIS без вывода сообщений возвращает код выхода 1

Я компилирую скрипт NSIS в установочный файл.exe. Я запускаю.exe с параметром командной строки \S silent.

Установка выполняется бесшумно, как и хотелось, но есть код выхода 1. Код выхода 1 соответствует случаю, когда пользователь выбрал "Отмена" в мастере. Тем не менее, установка прошла успешно, и режим не работает (без взаимодействия с пользователем). Кроме того, откуда берется этот код выхода и как вручную ввести код выхода 0?

У меня есть идея, что я мог бы сделать что-то в функции.onInstSuccess, чтобы обеспечить выполнение кода выхода 1, если установка прошла успешно.

Кроме того, ExecWait записывает код выхода в переменную, но не имеет опции 'set'.

Чтобы вы посоветовали?

Спасибо и всего наилучшего

1 ответ

Решение

Без какого-либо примера кода довольно сложно догадаться, в чем может быть проблема!

Вы можете установить определенный код выхода с помощью SetErrorLevel,

Что касается ExecWait, установка чего-либо не имеет смысла, когда он возвращает, дочерний процесс завершился. Если вы хотите использовать код завершения дочернего процесса, все, что вам нужно, это получить его:

ExecWait '"c:\foo.exe"' $0
SetErrorLevel $0
Другие вопросы по тегам