我的NSIS安装程序与我的应用程序包一起静默安装.Net framework 4.0。平台是Win Xp / 7/8。
ExecWait '"$TEMP\app-temp\dotNetFx40.exe" /q /norestart'
现在问题是,如果dotNetFx40安装程序返回3010代码所需的重新启动,则应该重新启动Windows,然后再继续。我不能跳过这个,因为我的应用程序依赖于.Net框架,而且在安装过程中需要注册一些dll,并提供.Net文件。
要解决此问题,我可以显示一个消息框(YES_NO)并要求重新启动(在消息框IDYES上触发NSIS重新启动命令),并且可以在下次启动后通过注册表RunOnce方法继续安装。
现在,只有当.Net安装程序报告3010错误时才应该这样做,这可能是少数系统但不是每个系统的情况。
我可以看到,事件查看器通过引用RestartManager来记录它,但我认为使用NSIS无法读取事件查看器。那么有没有其他方法来阅读.Net安装程序的返回代码?
答案 0 :(得分:1)
ExecWait
将告诉您子进程的退出代码:
ExecWait '"c:\path\app.exe" /whatever' $0
DetailPrint $0