[NSIS] 64비트 환경 $SYSDIR 의 Syswow64 와 system32 구분방법
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
'installer' 카테고리의 다른 글
[NSIS] nsis 환경에서 icon refresh 방법 (SHChangeNotify) (0) | 2015.06.15 |
---|---|
[NSIS] 32비트와 64비트 환경에서 dll(com server) 레지스트리 등록방법 (0) | 2015.06.15 |
[인스톨쉴드] 레지스트리 값 스크립트로 수동으로 입력하는 방법 (0) | 2011.10.28 |
[인스톨쉴드] 아이콘 Refresh 하는 방법 SHChangeNotify() (0) | 2011.10.28 |