Archive: $Variables in File instruction?


$Variables in File instruction?
  Hi,

I am one of the developers of the windows port of an open source gaming zone (see http://ggz.sf.net ). We have been using nsis to distribute our paltry attempts at coding and are for the most part amazingly pleased with it.

We have a number of system files to be distributed and at the moment these are added with the instructions

SetOutputPath $SYSDIR
File "C:\windows\system\dllname.dll"
RegDLL $SYSDIR\dllname.dll

for example. This works without a problem for me when using Win98, but one of the other developers uses Win2k exclusively. For him to be able to compile the nsis file he must replace C:\windows\system with c:\winnt\system32. This is, I must admit, not the greatest of hardships but I imagine that it would be simple enough to add support for at least $SYSDIR to the File instruction so that we could then use

File "$SYSDIR\dllname.dll"

and it would compile on all versions of windows.

It occurs to me now that makensis may search for the file in all of %PATH% so

File "dllname.dll"

would be all that is needed. I don't have internet access until I'm back at work on monday so I'll leave this post and test it over the weekend ;)

I'm sure that I'm not the only one in this situation.

Regards,

Roger


Hi Roger,

You can build an installer that will make the installer.
Its script should be:


SilentInstall silent


Section "asd"
ReadRegStr $1 HKLM "Software\\NSIS" ""
Exec '"$1\\makensisw.exe" "$1\\makensis.exe" /CD "yourscript.nsi" /DLOCALSYSDIR=$SYSDIR'
>SectionEnd
>
In your installer you should use ${LOCALSYSDIR} to find your dll.

KiCHiK

Ah, very cunning.

Thanks,

Roger