即使在安装失败时也强制 Inno Setup 创建日志

Force Inno Setup to create log even on install failure

我有 Inno Setup 安装程序的应用程序。应用程序在后台 运行。这意味着,当我升级应用程序(在旧版本上安装新版本)时,我需要安装程序关闭此应用程序,因此所有文件都可以正常替换。

但似乎有时由于某些未知原因无法关闭应用程序。为了得到理由,我想记录它。问题是,由于安装程序无法替换文件,用户会收到错误消息,这会阻止安装程序完成。并且 Inno Setup 只有在成功完成安装后才会写入日志。

实际问题是 - 最后的陈述是否正确,或者是否有配置 Inno Setup 安装程序的方法,因此即使在安装中止时它也会创建日志文件?我有想法制作我自己的手动日志文件,它将在安装开始时创建,并在每次执行某些方法时更新,但我不想重新发明轮子。

And Inno Setup writes log only after successfully finishing installation.

不,那是不正确的。

日志会在安装程序启动时立即启动,甚至在它最终失败之前。

所以无论如何总是有一些日志(如果启用)。

安装程序 window 打开的那一刻,日志已经看起来像:

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=0C5A /NOTIFYWND=0C08 /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 中创建的。