2015-05-14 39 views
0

我的NSIS安裝程序會安裝.Net Framework 4.0以及我的應用程序包。平臺是贏XP/7/8檢測.Net框架需要重新啓動

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

現在的問題是,如果dotNetFx40安裝程序將返回3010代碼需要重新啓動,窗戶應繼續之前重新啓動。我不能跳過這個,因爲我的應用程序依賴於.Net框架,而且在安裝時需要註冊.Net。爲了解決這個問題,我可以顯示一個消息框(YES_NO)並要求重啓(在messagebox IDYES上觸發NSIS Reboot命令),並且在下次啓動後可以通過註冊表RunOnce方法繼續安裝。

現在,只有在.Net安裝程序報告3010錯誤時才應該執行此操作,對於少數系統而非每個系統,情況可能如此。

我可以看到,事件查看器記錄了RestartManager的引用,但我認爲使用NSIS讀取事件查看器是不可能的。那麼是否有其他方式來讀取.Net安裝程序的這個返回代碼?

回答

1

ExecWait會告訴你的子進程的退出代碼:

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

大。那就是我正在尋找的東西。 – hypheni