【问题标题】:Detecting .Net framework Reboot required检测 .Net 框架需要重启
【发布时间】:2015-07-26 04:32:14
【问题描述】:

我的 NSIS 安装程序将 .Net framework 4.0 与我的应用程序包一起静默安装。平台是 Win Xp / 7 / 8。

ExecWait '"$TEMP\app-temp\dotNetFx40.exe" /q /norestart'

现在的问题是,如果 dotNetFx40 安装程序返回需要使用 3010 代码重新启动,则应在继续之前重新启动 Windows。我不能跳过这个,因为我的应用程序依赖于 .Net 框架,而且在安装过程中需要使用 .Net 注册一些 dll。

为了解决这个问题,我可以显示一个消息框(YES_NO)并要求重新启动(在消息框 IDYES 上触发 NSIS Reboot 命令),并且可以在下次启动后通过注册表 RunOnce 方法继续安装。

现在,只有在 .Net 安装程序报告 3010 错误时才应该这样做,这可能是少数系统的情况,但不是每个系统。

我可以看到,事件查看器参考 RestartManager 记录了这一点,但我认为使用 NSIS 读取事件查看器是不可能的。那么有没有其他方法可以读取这个.Net安装程序的返回码呢?

【问题讨论】:

    标签: installation nsis


    【解决方案1】:

    ExecWait会告诉你子进程的退出代码:

    ExecWait '"c:\path\app.exe" /whatever' $0
    DetailPrint $0
    

    【讨论】:

    • 太棒了。这就是我一直在寻找的。​​span>
    猜你喜欢
    • 1970-01-01
    • 2016-03-30
    • 1970-01-01
    • 2013-10-15
    • 1970-01-01
    • 1970-01-01
    • 2013-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多