Skip to content
⌘ NSIS Forum Archive

NSIS user selected install directory

3 posts

Symbicort#

NSIS user selected install directory

Is it possible to force the user to have a specific install directory when they select their custom install directory on the directory page?

I'm using MUI2.

My default install dir is

InstallDir "$PROGRAMFILES64\${PRODUCT_PUBLISHER}\${PRODUCT_NAME}"
I can see that the install will select the final value in this to become the top folder of the user selected directory. For example when I put in Test here. The top folder of the user selected directory will be test.

InstallDir "$PROGRAMFILES64\${PRODUCT_PUBLISHER}\Test"
Is there a way to force this to include another folder so the user will have to have "${PRODUCT_PUBLISHER}\${PRODUCT_NAME}"



Also I super apologies if I have duplicated this thread, I could swear I created one earlier but it disappeared after I selected submit. First time poster.
Symbicort#
Fix

Ok I'll be honest this was my first problem with the installer that I couldn't handle myself by scanning the docs and googling. So I probably posted in haste. I apologies, I have since found a fix.

Hopefully this will help somebody else.

ok so the first step I took was to do the following.

Function .onVerifyInstDir
; Will add publisher and name to install dir regardless of location.
StrCpy $INSTDIR "$INSTDIR\${PRODUCT_PUBLISHER}\${PRODUCT_NAME}"
FunctionEnd
This worked for all directories but caused ${PRODUCT_NAME} to be repeated. So the next step was to add a backslash to the installdir. This doesnt affect the default installdir, just custom.

InstallDir "$PROGRAMFILES64\${PRODUCT_PUBLISHER}\${PRODUCT_NAME}\"