logo

한국어

NSIS-배포 프로그램 만들기

관리자 2010.04.17 23:02 조회 수 : 449

다운로드 (완전 무료)

http://nsis.sourceforge.net/

설치 후 아래 예제를 따라하면 쉽게 배포 프로그램을 만들 수 있다.

 

※ 예제

 

1. 폴더 생성

  1.1 배포 프로그램에 포함되는 파일이 있는 폴더를 만든다.

       c:\NSIS Test\SourceFile

    1.1.1 폴더를 생성하고 배포 파일을 만든다. 마우스 오른쪽 버튼으로 보이는 메뉴에서 "새로 만들기>텍스트 문서"로 일반 텍스트 문서를 만들고 각각 텍스트파일안에 임의의 문자를 쓴다.

            a.txt

            b.txt

  1.2 배포 프로그램이 생성되는 폴더를 만든다.

       c:\NSIS Test\InstallFile

 

2. 예제 NSIS 스크립트 복사

  2.1 NSIS를 실행한다. (시작>프로그램>NSIS)

       빨간색 상자 부분을 클릭하면 예제 스크립트가 있는 폴더가 열린다.

  2.2 열린 탐색기에서 StartMenu>Example.nsi 파일을 복사해서 c:\NSIS Test\InstallFile 폴더에 Install.nsi로 저장한다.

 

3. NSIS 스크립트 열기

  3.1 Compiler 실행 : 빨간색 상자 부분을 클릭하면 NSIS Complier가 실행된다.

 

  3.2 c:\NSIS Test\InstallFile 폴더에 Install.nsi 파일을 "파일>Load Script..."로 열거나 탐색기에서 드래그 & 드랍으로 Compiler에서 스크립트의 실행을 확인할 수 있다. Test Install 버튼을 누르면 가상으로 프로그램이 실행 된다.

  3.3 "Script>Edit Scrit"를 선택하거나 "Ctrl+E"를 누르면 메모장이 열리고 스크립트의 소스를 볼 수 있다.

  3.4 c:\NSIS Test\InstallFile 폴더에 보면 Compiler에서 스크립트 실행과 함께 StartMenu Test.exe 파일 생성되는 것을 알 수 있다.

 

4. NSIS 스크립트 수정

#   : 주석

-> : 수정

글자색이 회색인 부분은 삭제한다.

굵은 글자는 수정되는 부분이다.

 

Name "StartMenu.dll test"

-> Name "대한민국"

 

OutFile "StartMenu Test.exe"

-> OutFile "Install.exe"

 

XPStyle on

 

Page directory


DirText "This installer will create some shortcuts to MakeNSIS in the start menu.$\nFor this it needs NSIS's path." \

-> DirText "a.txt b.txt 파일을 설치합니다.$\n성공할까요?" \
  "Please specify the path in which you have installed NSIS:"

-> "설치할 폴더를 선택하세요."
InstallDir "${NSISDIR}"

-> InstallDir "$PROGRAMFILES\Test"

Function .onVerifyInstDir
 IfFileExists $INSTDIR\makensis.exe +2
  Abort
FunctionEnd

 

Page custom StartMenuGroupSelect "" ": Start Menu Folder"
Function StartMenuGroupSelect
 Push $R1

 StartMenu::Select /checknoshortcuts "Don't create a start menu folder" /autoadd /lastused $R0 "StartMenu.dll test"
-> StartMenu::Select /checknoshortcuts "프로그램을 등록하지 않고 설치" /autoadd /lastused $R0 "Test 프로그램" 

Pop $R1

 StrCmp $R1 "success" success
 StrCmp $R1 "cancel" done
  ; error
  MessageBox MB_OK $R1
  StrCpy $R0 "StartMenu.dll test" # use default
  -> StrCpy $R0 "Test 프로그램" # use default

  Return
 success:
 Pop $R0

 done:
 Pop $R1
FunctionEnd

Page instfiles
Section
 # this part is only necessary if you used /checknoshortcuts
 StrCpy $R1 $R0 1
 StrCmp $R1 ">" skip

 

  CreateDirectory $SMPROGRAMS\$R0
  CreateShortCut $SMPROGRAMS\$R0\MakeNSISw.lnk $INSTDIR\makensisw.exe

  SetShellVarContext All
  CreateDirectory $SMPROGRAMS\$R0
  CreateShortCut "$SMPROGRAMS\$R0\All users MakeNSISw.lnk" $INSTDIR\makensisw.exe

 

  CreateDirectory $SMPROGRAMS\$R0
  CreateShortCut "$SMPROGRAMS\$R0\a.txt 열기.lnk" "$INSTDIR\a.txt"

  CreateShortCut "$SMPROGRAMS\$R0\b.txt 열기.lnk" "$INSTDIR\b.txt"

 

        SetOutPath $INSTDIR
        File ".\..\SourceFile\a.txt"
        File ".\..\SourceFile\b.txt"


 skip:
SectionEnd

 

5. NSIS 스크립트 Compile

  5.1 Install.nsi 스크립트 파일을 Compile 한다.(3번 참고) Complier를 실행하고 Install.nsi를 열으면 자동으로 컴파일된다.

 

6. 완료

c:\NSIS Test\InstallFile 폴더에 Install.exe 파일을 실행하여 확인한다.