[electron-builder-nsis 如何使用 If-Else 来控制 MUI_PAGE_DIRECTORY?

问题描述

首先请原谅我的英文不好~ 你好,我需要完成这个问题: 如果用户安装了我的应用程序,更新到应用程序,我希望安装程序不显示 MUI_PAGE_DIRECTORY,如果人们从未安装过,可以显示 MUI_PAGE_DIRECTORY。 但是发现我写 install.nsh 的时候做不到。 比如

// I want this write
${if} $userInstallPath != ""
   //
${else}
    !insertmacro MUI_PAGE_DIRECTORY
${endif}

但事实并非如此

解决方法

要跳过页面,请在页面预回调中调用 Abort。我不知道你是如何在 Electron builder 中做到这一点的,但在普通的 NSIS 中你是这样做的:

!define MUI_PAGE_CUSTOMFUNCTION_PRE dirskip
!insertmacro MUI_PAGE_DIRECTORY
... 

Function dirskip
${If} $userInstallPath != ""
   Abort
${EndIf}
FunctionEnd