Thinking Different




NSIS에서 메인 섹션부분에서 특정 파일을 c:\windows\system32 에 넣고 싶은 경우 $SYSDIR 을 사용한다. 

64비트 환경에서는 $SYSDIR이 자동적으로 syswow64로 고정된다. 이를 system32로 변경하고자 할 경우 사용한다.


 !include "x64.nsh" 추가


  ${If} ${RunningX64}

  ${DisableX64FSRedirection}

    ; 넣고자 하는 파일이나 함수들 등

  ${EnableX64FSRedirection}

  ${EndIf}


이렇게 처리하게 되면 파일들은 syswow64 경로가 아닌 system32 경로로 복사하게 된다.




예제를 통한 사용법)

아래 예제는 Update.exe를 설치경로로 복사하며, $SYSDIR(c:\windows\system32) 경로로 msvcr120.dll 을 복사하는 예제이다


 !include "x64.nsh" 추가


Section "MainSection" SEC01

  SetOutPath "$INSTDIR"

  SetOverwrite ifnewer

  File "Update.exe"


  SetOutPath "$SYSDIR"

  SetOverwrite ifnewer

  ${If} ${RunningX64}

  ${DisableX64FSRedirection}

  File "msvcr120.dll"

  ${EnableX64FSRedirection}

  ${EndIf}

SectionEnd