NSIS make D:默认安装路径

问题描述 投票:0回答:1

我有一个 Electron 应用程序,我希望默认安装路径是 D:(如果存在),而不是 C:

我当前的 installer.nsh 文件是:

Section
    System::Call 'kernel32::GetFileAttributes(t "D:\")i .r0'
    
    IntCmp $0 -1 NoDInstalled DriveDInstalled
    
    NoDInstalled:
        StrCpy $INSTDIR "$PROGRAMFILES\"
        Goto ContinueInstallation

    DriveDInstalled:
        StrCpy $INSTDIR "D:\"
        Goto ContinueInstallation
    
  ContinueInstallation:
    SetOutPath $INSTDIR
SectionEnd

我的电脑连接了一个 D: 外部驱动器,默认仍然是 C:

希望得到一些帮助!

electron nsis
1个回答
0
投票
  • 您应该在 .onInit 中设置默认的 $InstDir,而不是在
    Section
    中。
  • 您应该向
    IntCmp
    提供3个跳转标签。
  • 您不应该安装到
    $PROGRAMFILES
  • 的根目录

!macro customInit
System::Call 'kernel32::GetFileAttributes(t "D:\")i .r0'
${If} $0 <> -1
  StrCpy $INSTDIR "D:\"
${Else}
   StrCpy $INSTDIR "$PROGRAMFILES\$(^Name)"
${EndIf}
!macroend

在真正的 NSIS 中你只会

Function .onInit
!insertmacro customInit
FunctionEnd

但是由于您使用的是电子,我不知道您实际将该宏放在哪里,文档不清楚它是在 installer.nsh 还是其他地方。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.