Search code examples
user-interfacecomponentsusabilitynsis

How can I skip the NSIS "components" page?


I'm using NSIS to create the installer (with the "Modern" UI) for a Java application that only has one installable component. It seems silly to show the user the "components" page in this scenario. How can I suppress that page? I tried commenting it out in my script as follows:

...
!insertmacro MUI_PAGE_LICENSE "..\..\..\src\main\nsis\Readme.txt"
;!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
...

But that led to all sorts of scary warnings (although the installer does seem to work):

[MAKENSIS] warning: unknown variable/constant "mui.ComponentsPage.DescriptionText" detected, ignoring (macro:MUI_DESCRIPTION_BEGIN:4)
[MAKENSIS] warning: unknown variable/constant "mui.ComponentsPage.DescriptionText" detected, ignoring (macro:MUI_DESCRIPTION_BEGIN:5)
[MAKENSIS] warning: unknown variable/constant "mui.ComponentsPage.DescriptionText.Info" detected, ignoring (macro:MUI_DESCRIPTION_BEGIN:6)
[MAKENSIS] warning: unknown variable/constant "mui.ComponentsPage.DescriptionText" detected, ignoring (macro:MUI_DESCRIPTION_BEGIN:6)
[MAKENSIS] warning: unknown variable/constant "mui.ComponentsPage.DescriptionText" detected, ignoring (macro:MUI_DESCRIPTION_TEXT:6)
[MAKENSIS] warning: unknown variable/constant "mui.ComponentsPage.DescriptionText" detected, ignoring (macro:MUI_DESCRIPTION_TEXT:7)
[MAKENSIS] warning: unknown variable/constant "mui.ComponentsPage.DescriptionText" detected, ignoring (macro:MUI_DESCRIPTION_TEXT:8)

I found an NSIS wiki entry about skipping pages, but couldn't make head nor tail of it.


Solution

  • You need to remove the component description macro's from your script (MUI_FUNCTION_DESCRIPTION_BEGIN, MUI_DESCRIPTION_TEXT, MUI_FUNCTION_DESCRIPTION_END)