${NSISDIR} problem
Hello,
I have installed NSIS on D:\Program Files\NSIS but when I use ${NSISDIR} it is C:\Program Files\NSIS.
Is ${NSISDIR} saved in the registry?
Archive: ${NSISDIR} problem
${NSISDIR} problem
Hello,
I have installed NSIS on D:\Program Files\NSIS but when I use ${NSISDIR} it is C:\Program Files\NSIS.
Is ${NSISDIR} saved in the registry?
If you use the NSIS installer it will be set correctly. My NSISDIR is set to D:\...
Stu
http://www.aemik.de/bilder/nsisbug.JPG
Now I have installed NSIS on a new labtop (OS: XP Prof. English).
I have choosen the directory D:\Program Files\NSIS. You can see it on the picture.
Afterwarths I have started a small program to check the ${NSISDIR} variable
On the pciture you can see that the NSISDIR variable is wrong.Name "NSISDIR Test"
|MB_OK "NSIS Verzeichnis Variable: ${NSISDIR}"
>OutFile "NSISDIR Test.exe"
>Section
MessageBox MB_ICONINFORMATION
>Sectionend
>
You do realise ${NSISDIR} is not a variable. It's a constant. The {} denote that. Variable names do not have {}.
${NSISDIR} is set to the NSIS directory path on compile time. If you build your installer under C:\Programme\NSIS then NSISDIR will always be that no matter where you run the installer from. Hence why it's called a constant.
Stu
ok, it is a constant.
But that is not the main problem.
the NSIS directory path on compile time is already wrong.
What is the value stored in
HKLM "Software\NSIS" ""
Stu
D:\Program Files\NSIS
${NSISDIR} = C:\Programme\NSIS
And you definitely recompiled that installer on the same machine?
Stu
yes, for sure...
my colleague told me that problem, so I have installed NSIS on my new labtop on D:\ and there was the same.
Did you try to reproduce this failure?
${NSISDIR} is not taken from the registry and it's not a real constant either. It's taken from wherever you ran makensis.exe. If it runs from C:\Program Files\NSIS, it'll set ${NSISDIR} to C:\Program Files\NSIS.
My bad :)
Stu
Aha okay...
when i compile the nsi file with C:\Program Files\NSIS\makensis.exe the ${NSISDIR} constant in my installer is always "C:\Program Files\NSIS\".
How can I get the right NSISDIR of each PC when somebody starts the installer? Can I read the RegStr???
As Stu mentioned above the value is stored in registry,
use ReadRegStr $0 HKLM "Software\NSIS" ""
Ok, I think I have it. Thank you very much...