2016-05-13 2 views
0

У меня есть приложение с установщиком Inno Setup. Приложение работает на фоне. Это означает, что при обновлении приложения (установка новой версии поверх старой) мне нужно установить установщик, чтобы закрыть это приложение, поэтому все файлы могут быть заменены изящно.Force Inno Setup для создания журнала даже при сбое установки

Но кажется, что иногда он не может закрыть приложение по неизвестной причине. Чтобы получить разум, я хотел бы его зарегистрировать. Проблема в том, что, поскольку программа установки не может заменить файлы, пользователь получает сообщение об ошибке, которое останавливает установку установщика. И Inno Setup записывает журнал только после успешного завершения установки.

Фактический вопрос: является ли последнее утверждение правильным или существует способ настройки установщика Inno Setup, поэтому он будет создавать файл журнала даже при прерванной установке? У меня есть идея создать собственный файл журнала вручную, который будет создан при запуске установки и обновляться каждый раз, когда выполняется какой-либо метод, но я не хочу изобретать колесо.

ответ

1

И Inno Setup записывает журнал только после успешного завершения установки.

Нет, это не так.

Журнал запускается, как только начнется установка, даже до того, как он в конечном итоге не удастся.

Итак, есть журнал, всегда (если включен), несмотря ни на что.

В тот момент, открывается окно программы установки, журнал уже выглядит следующим образом:

2016-05-13 12:30:45.712 Log opened. (Time zone: UTC+02:00) 
2016-05-13 12:30:45.712 Setup version: Inno Setup version 5.5.9 (u) 
2016-05-13 12:30:45.712 Original Setup EXE: C:\path\mysetup.exe 
2016-05-13 12:30:45.712 Setup command line: /SL5="$C0338,134364,121344,C:\path\mysetup.exe" /SPAWNWND=$200C5A /NOTIFYWND=$110C08 /log=install.log 
2016-05-13 12:30:45.712 Windows version: 10.0.10586 (NT platform: Yes) 
2016-05-13 12:30:45.712 64-bit Windows: Yes 
2016-05-13 12:30:45.712 Processor architecture: x64 
2016-05-13 12:30:45.712 User privileges: Administrative 
2016-05-13 12:30:45.712 64-bit install mode: No 
2016-05-13 12:30:45.712 Created temporary directory: C:\Users\martin\AppData\Local\Temp\is-K3VS6.tmp 

Журнал создается только если:

  • вы просите его, используя /log=c:\path\setup.log переключатель (как вы см. в моем журнале выше) или
  • журнал принудительно использует SetupLogging=yes directive, и в этом случае журнал создается в %TEMP%\Setup Log yyyy-mm-dd #xxx.txt.
+0

Где этот журнал может быть найден? Я только что начал установку, но папка с журналом кажется старой (с предыдущей успешной установки). – lentinant

+0

Хорошо, я нашел этот, спасибо. Всегда думал, что фактический журнал - это InstallationLogFile в корне приложения. Теперь несколько дополнительных вопросов - можно ли получить имя файла журнала внутри установщика? Поэтому я могу скопировать его в какую-то конкретную папку. – lentinant

+0

Нет прямой поддержки для получения пути к журналу. Для журнала, указанного с помощью '/ log', вы можете проанализировать командную строку установщика. Для автоматического журнала вы можете попробовать найти последний файл, соответствующий '% TEMP% \ Setup Log * .txt'. –

Смежные вопросы