我正在整理我的第一个NSIS安装程序脚本,但遇到了一些麻烦。
我正在使用Modern UI并在下面提供了简化的脚本:
!insertmacro MUI_PAGE_COMPONENTS
Page custom CustomPage
Section "Tomcat" SEC01
;stuff in here to install Tomcat from bundled installer
SectionEnd
Section "Deploy WARS" SEC02
;Fire a separate custom page so that I can use nsDialog to get
;user to choose a folder location for deploying WARs.
;(as potentially their could be more than one Tomcat installed)
SectionEnd
根据我的阅读,您无法从某个部分中触发自定义页面 那么如何维护MUI_PAGE_COMPONENTS页面以允许用户选择是否要安装Tomcat和/或部署WAR。
我需要一个自定义页面吗?
答案 0 :(得分:2)
您可以拥有多个instfiles页面,因此您可以拥有此页面顺序的安装程序:
Section "Tomcat" SECTOM
SectionEnd
Section /o "WAR" SECWAR
SectionEnd
Section
;Use macros from sections.nsh to deselect SECTOM and select SECWAR
SectionEnd
第3页和第4页的预回调函数需要使用sections.nsh中的SectionFlagIsSet,如果未选择War组件则调用Abort
,以便跳过页面。
另一种方法是尝试DlgHost插件并在instfiles页面的子窗口中显示自定义对话框...