【问题标题】:NSIS Installer Silent run app -- ElectronNSIS 安装程序静默运行应用程序——电子
【发布时间】:2021-06-28 11:47:16
【问题描述】:

我们有一个电子应用程序,它使用自定义 nsis 脚本进行安装程序。虽然这可以正常工作,但由于某种原因,如果应用程序以静默模式安装,我无法触发应用程序自动启动。

如果应用程序安装正常(例如:双击.exe,它会自动启动),但是如果从命令行使用类似:

"installer.exe" /S

它似乎没有自动启动。

目前使用的安装程序脚本 (installer.nsh):

!macro preInit
   SetRegView 64 ... some reg things -- OK
   SetRegView 32 ... some reg things -- OK
!macroend

!macro customInit
; SHUT DOWN APP IF CURRENTLY RUNNING
${GetProcessInfo} 0 $0 $1 $2 $3 $4
    ${if} $3 != "${APP_EXECUTABLE_FILENAME}"
    ${nsProcess::FindProcess} "${APP_EXECUTABLE_FILENAME}" $R0
    ${If} $R0 == 0
      ;MessageBox MB_OK "App currently running - going to shutdown to install new version"
      ${nsProcess::CloseProcess} "${APP_EXECUTABLE_FILENAME}" $R0
      Sleep 5000
      ${nsProcess::KillProcess} "${APP_EXECUTABLE_FILENAME}" $R0
      Sleep 3000
   ${EndIf}
   ${nsProcess::Unload}
${endIf}

; Workaround for installer handing when the app directory is removed manually
${ifNot} ${FileExists} "$INSTDIR"
  DeleteRegKey HKCU ...other reg thing
${EndIf}

!macroend

 ---the culprit---
 Function .onInstSuccess
 IfSilent +2 0  
   Exec '"$INSTDIR\app.exe"'
 FunctionEnd

我尝试了不同的变体:

Function .onInstSuccess
    IfSilent +2 0
    Exec '"Absolute\Path\To\app.exe"'
FunctionEnd

或者,在 customInit 宏中设置类似:SetSilent normal 的内容会触发类似双击出现安装程序屏幕的 .exe 时的行为。

非常感谢任何想法或建议。

【问题讨论】:

    标签: electron nsis electron-builder


    【解决方案1】:

    IfSilent +2 0 跳过Exec 如果安装程序是静默的!只需删除该行。

    静默安装程序通常不会启动应用程序,因此理想情况下您不应更改任何内容。

    【讨论】:

    • 我需要确定安装程序是否以静默模式运行,就像它以双击/常规模式运行一样,它会自动启动。 (在这种情况下,需要静默安装,因为它是这样运行的要求,是部署的一部分)
    • 去掉了这条线,还是不行,安装后app没有启动
    • 如果将 Exec 更改为 MessageBox 会发生什么?
    • 什么都不会弹出,比如在静默模式下完全忽略该钩子中的任何内容
    【解决方案2】:

    由于应用程序是使用电子和电子构建器构建的,即使提供了自定义 .nsh 文件,如果以手动模式安装,应用程序仍然无法启动,正如 here 指出的那样。

    经过一番研究,如果在命令行参数中提供了该功能,则可以重新启用该功能 (pointed out here)

    myAppInstaller.exe /S --force-run

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-25
      • 1970-01-01
      • 2011-06-04
      • 1970-01-01
      相关资源
      最近更新 更多