当用户取消 NSIS 安装时如何读取打包文件的内容?

How to read the contents of a packed file when the uses cancels an NSIS installation?

我想向 Web 服务报告安装是否成功完成。需要传递给服务的标识符与其他(压缩)文件一起存储在未压缩的文本文件中。安装成功后一切正常,但是当用户取消安装时,没有文件被提取(如预期的那样),我无法找到从存档中提取特定文件的方法。

我考虑了一些其他选项(编写自定义插件,通过安装程序可执行文件进行解析),但我希望有一个更简洁的解决方案。

您可以在安装程序中的任何位置提取文件,在您的情况下可能在 .onInstFailed.onUserAbort:

Function .onInstFailed
InitPluginsDir
SetOutPath $pluginsdir
File something.ext
; Do something with "$pluginsdir\something.ext"
; Note: $pluginsdir is automatically deleted when installer quits...
FunctionEnd