根据用户选择安装的内容,在开始菜单中有不同的条目
Have different entries in startmenu dependent on what user has chosen to install
我正在 NSIS 安装程序中使用组件的可选安装,如 NSIS wiki 上的 Controlling Available Install Options 所示。
这个工作正常,取决于用户选择的选项,安装相关部分。
但是现在出现在单独部分的开始菜单条目有问题:
Section -startmenu
SetShellVarContext all
CreateDirectory "$SMPROGRAMS\MyInstall"
CreateShortCut "$SMPROGRAMS\MyInstallOpenAPC\Editor1.lnk" "$INSTDIR\Editor1.exe" "" "$INSTDIR\icon.ico" 0
CreateShortCut "$SMPROGRAMS\MyInstallOpenAPC\Editor2.lnk" "$INSTDIR\Editor2.exe" "" "$INSTDIR\icon.ico" 0
CreateShortCut "$SMPROGRAMS\MyInstallOpenAPC\Editor3.lnk" "$INSTDIR\Editor3.exe" "" "$INSTDIR\icon.ico" 0
CreateShortCut "$SMPROGRAMS\MyInstallOpenAPC\Editor4.lnk" "$INSTDIR\Editor4.exe" "" "$INSTDIR\icon.ico" 0
Sectionend
根据可选安装的包,我只想创建一些开始菜单条目。
如何做到这一点?如何在开始菜单条目和已安装的部分之间建立关系?
您可以检查是否选择了相关组件(部分):
!include LogicLib.nsh
InstallDir "$ProgramFiles\MyApp"
Page Components
Page InstFiles
Section "Foo" SID_FOO
SetOutPath "$InstDir\Foo"
; ...
SectionEnd
Section "Bar" SID_BAR
SetOutPath "$InstDir\Bar"
; ...
SectionEnd
Section "Start menu shortcuts"
SetShellVarContext all
${If} ${SectionIsSelected} ${SID_FOO}
CreateDirectory "$SMPROGRAMS\MyApp"
CreateShortcut "$SMPROGRAMS\MyApp\Foo.lnk" "$InstDir\Foo\Foo.exe"
${EndIf}
${If} ${SectionIsSelected} ${SID_BAR}
CreateDirectory "$SMPROGRAMS\MyApp"
CreateShortcut "$SMPROGRAMS\MyApp\Bar.lnk" "$InstDir\Bar\Bar.exe"
${EndIf}
SectionEnd
我正在 NSIS 安装程序中使用组件的可选安装,如 NSIS wiki 上的 Controlling Available Install Options 所示。
这个工作正常,取决于用户选择的选项,安装相关部分。
但是现在出现在单独部分的开始菜单条目有问题:
Section -startmenu
SetShellVarContext all
CreateDirectory "$SMPROGRAMS\MyInstall"
CreateShortCut "$SMPROGRAMS\MyInstallOpenAPC\Editor1.lnk" "$INSTDIR\Editor1.exe" "" "$INSTDIR\icon.ico" 0
CreateShortCut "$SMPROGRAMS\MyInstallOpenAPC\Editor2.lnk" "$INSTDIR\Editor2.exe" "" "$INSTDIR\icon.ico" 0
CreateShortCut "$SMPROGRAMS\MyInstallOpenAPC\Editor3.lnk" "$INSTDIR\Editor3.exe" "" "$INSTDIR\icon.ico" 0
CreateShortCut "$SMPROGRAMS\MyInstallOpenAPC\Editor4.lnk" "$INSTDIR\Editor4.exe" "" "$INSTDIR\icon.ico" 0
Sectionend
根据可选安装的包,我只想创建一些开始菜单条目。
如何做到这一点?如何在开始菜单条目和已安装的部分之间建立关系?
您可以检查是否选择了相关组件(部分):
!include LogicLib.nsh
InstallDir "$ProgramFiles\MyApp"
Page Components
Page InstFiles
Section "Foo" SID_FOO
SetOutPath "$InstDir\Foo"
; ...
SectionEnd
Section "Bar" SID_BAR
SetOutPath "$InstDir\Bar"
; ...
SectionEnd
Section "Start menu shortcuts"
SetShellVarContext all
${If} ${SectionIsSelected} ${SID_FOO}
CreateDirectory "$SMPROGRAMS\MyApp"
CreateShortcut "$SMPROGRAMS\MyApp\Foo.lnk" "$InstDir\Foo\Foo.exe"
${EndIf}
${If} ${SectionIsSelected} ${SID_BAR}
CreateDirectory "$SMPROGRAMS\MyApp"
CreateShortcut "$SMPROGRAMS\MyApp\Bar.lnk" "$InstDir\Bar\Bar.exe"
${EndIf}
SectionEnd