Archive: Copying DLL to $SYSDIR


Copying DLL to $SYSDIR
Hi All,

Here is a code in my nsis script.

SetOutPath $SYSDIR
MessageBox MB_OK $SYSDIR ;This shows C:\windows\System32
${If} ${RunningX64}
File ".\My64bitDLL.dll"
${Else}
File ".\My32bitDLL.dll"
${EndIf}

But the DLL is copied to C:\Windows\SysWow64. Why is that???
The DLL copied is 64bit.


x64.nsh


x64.nsh is included. If you read below, I said the 64bit dll was copied.

Question here is "why the dll is copied to SysWOW64, rather then being copied to system32".
I do get the proper 64bit ach from script at runtime.


You need to disable the file system redirection. NSIS is 32-bit so will get redirected to SysWOW64. To stop this use ${DisableX64FSRedirection}. You can just use this once in a hidden Section and it will disable the redirection for all sections (the current thread).

Stu


Originally posted by adnanshaheen
x64.nsh is included. If you read below, I said the 64bit dll was copied.

Question here is "why the dll is copied to SysWOW64, rather then being copied to system32".
I do get the proper 64bit ach from script at runtime.
If you read the comments above in x64.nsh... :p