Archive: NSIS script not installing in correct directory System32


NSIS script not installing in correct directory System32
Hello everybody,

I am trying to make an install script. I need to place some dlls and ocx on C:\Windows\System32 either on 32bits pc or 64bits pc. I am not able to redirect the system to System32 on 64 bit PC.

My script is something like this:

;--------------------------------


!include "MUI2.nsh"
!include 'LogicLib.nsh'
;!include "x64.nsh"

Section "Basic Installing DLL"

SetOutPath "$WINDIR\System32"
SetOverwrite ifnewer
DetailPrint "Installer running on 64-bit host"

;Placing dll on System32
File "C:\Installation\Basic Installation\System32\DINTER.DLL"

;Registering dll
ExecWait 'regsvr32.exe /s "$WINDIR\System32\DINTER.DLL"'
RegDLL "$WINDIR\SysWOW64\DINTER.DLL"

SectionEnd


My installation is doing the following:

I have two questions:

Thank you for your help and advise,

N

You've included x64.nsh but not used ${DisableX64FSRedirection}.

Edit: And it is safe to use that on any OS (no need to check you are running on x64).

Stu


The following works for me:

SetOutPath $SYSDIR
${DisableX64FSRedirection}
SetOutPath "$WINDIR\System32"

I am still having this question:

How can I register my DLLs correctly? Should I be using: regsvr32.exe or RegDLL?

N


Thanks Stu,

It works. I see your point to use that on any OS not checking if I am running on X64.

Any idea about how to register correctly the dlls that I am installing on system32?

N


I'm not sure if RegDLL will work on 64-bit DLL's. If it does then you should use that.

Stu