NSIS - 설치 스크립트 설명

정말 적기 힘드네요...
물론 이렇게 노가다로 일일히 안해도 됩니다.
HM NIS Edit 라는 스크립트 에디터 툴을 쓰시거나 Venis 라는 툴을 사용하셔도 됩니다.
하지만 한번 만들어 놓은 스크립트는 특별한 스크립트가 들어가지 않는한 변하질 않기 때문에 저 같은 경우 만들어 놓은걸 복사해서 일부분만 고쳐서 사용을 하죠...
아래 설치 스크립트에 대한 부분에 주석을 달아 놓았으니 참고하세요...^^

; 배포 프로그램 이름 지정

!define APPNAME "FreemontEncoder"

; 배포 프로그램의 이름 및 버전 표시 (실제 배포 프로그램 실행 시 화면에 표시되는 이름)

!define APPNAMEANDVERSION "FreemontEncoder 2.0"

<?xml:namespace prefix = o /> 

; Main Install settings

; 프로그램 이름 : 위에미리 정의한 APPNAMEANDVERSION을 지정한다.

Name "${APPNAMEANDVERSION}"

; 기본 설치 경로

InstallDir"$PROGRAMFILES\Freemont\Freemont Encoder"

; 배포 프로그램 정보가 등록될 레지스트리 경로

InstallDirRegKey HKLM"Software\${APPNAME}" ""

; 컴파일 후 배포 프로그램이 출력될 경로 지정

OutFile "C:\FMSSetup.exe"

 

; Modern interface settings

; UI Modern 으로설정한다.

!include "MUI.nsh"

 

; 경고 페이지 및 설치 종료 후 바로 실행할 파일 지정

!define MUI_ABORTWARNING

!define MUI_FINISHPAGE_RUN"$INSTDIR\Freemont Encoder.exe"

 

; 설치 및 삭제 아이콘 지정(주의 : 반드시 설치와 삭제 아이콘은 포멧이 일치해야 한다.)

!define MUI_ICON "res\FMS.ico"

!define MUI_UNICON"res\UnInstall.ico"

 

; 매크로 페이지 삽입

; 환영 메시지 페이지

!insertmacro MUI_PAGE_WELCOME

; 설치 경로 선택 페이지

!insertmacro MUI_PAGE_DIRECTORY

; 설치 상태 페이지 : 설치퍼센트 표시되는 페이지

!insertmacro MUI_PAGE_INSTFILES

; 완료 페이지

!insertmacro MUI_PAGE_FINISH

 

; 삭제 확인 페이지

!insertmacro MUI_UNPAGE_CONFIRM

; 삭제 상태 페이지 : 삭제퍼센트 표시되는 페이지

!insertmacro MUI_UNPAGE_INSTFILES

 

; Set languages (first is default language)

; 설치 시 표시 가능한 언어를 설정한다.

; 처음에 설정한 언어가 기본 언어가 된다.

!insertmacro MUI_LANGUAGE"Korean"

!insertmacro MUI_LANGUAGE"English"

!insertmacro MUI_RESERVEFILE_LANGDLL

 

; 설치 섹션

Section "Freemont Encoder"Section1

 

           ;설치 경로에 동일한 파일 존재 시 덮어씌우라는 의미

           SetOverwriteon

 

           ;파일이 설치될 경로를 위에서 지정한 INSTDIR 로 한다.

           SetOutPath"$INSTDIR\"

           ;INSTDIR 에 설치할 로컬 파일 경로를 지정한다.

           File"C\FMS\release\Freemont Encoder.exe"

           File"C\FMS\release\config.ini"

           ;파일이 설치될 경로를 windows\system32로 한다.

           ;일부 dll 이나 필수 파일 등등

           SetOutPath"$SYSDIR"

           ;windows\system32 에 설치할 로컬 파일 경로를 지정한다.

           File"C\FMS\release\FLogo.ax"

           ;dll 이나 ocx, ax 와 같이 레지스트리에 등록이 필요한 경우 (cmd : regsvr32.exe)

           RegDLL"$SYSDIR\FLogo.ax"

           ;바로 가기를 등록한다.

           ;바탕화면에 바로 가기 등록

           CreateShortCut"$DESKTOP\Freemont Encoder.lnk" "$INSTDIR\FreemontEncoder.exe"

           ;시작 프로그램에 바로 가기 등록

           CreateDirectory"$SMPROGRAMS\Freemont"

           CreateShortCut"$SMPROGRAMS\Freemont\Freemont Encoder\Freemont Encoder.lnk""$INSTDIR\Freemont Encoder.exe"

           CreateShortCut"$SMPROGRAMS\Freemont\Freemont Encoder\Uninstall.lnk""$INSTDIR\uninstall.exe"

SectionEnd

 

; 종료 섹션

Section -FinishSection

           ;종료 섹션은 특별한 일이 없는 이상 아래와 같이 설치하는 프로그램에 대한 정보를 레지스트리에 저장한다.

           WriteRegStrHKLM "Software\${APPNAME}" "" "$INSTDIR"

           WriteRegStrHKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}""DisplayName" "${APPNAME}"

           WriteRegStrHKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}""UninstallString" "$INSTDIR\uninstall.exe"

           WriteUninstaller"$INSTDIR\uninstall.exe"

SectionEnd

 

; Modern install component descriptions

!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN

           !insertmacroMUI_DESCRIPTION_TEXT ${Section1} ""

!insertmacro MUI_FUNCTION_DESCRIPTION_END

 

; 삭제 섹션

Section Uninstall

 

           ;설치 정보 레지스트리를 삭제한다

           DeleteRegKeyHKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}"

           DeleteRegKeyHKLM "SOFTWARE\${APPNAME}"

 

           ;파일 삭제

           ;삭제 파일 삭제

           Delete"$INSTDIR\uninstall.exe"

          

           ;바로 가기 삭제

           Delete"$DESKTOP\Freemont Encoder.lnk"

           Delete"$SMPROGRAMS\Freemont\Freemont Encoder.lnk"

           Delete"$SMPROGRAMS\Freemont\Uninstall.lnk"

 

           ;설치 파일 삭제

           Delete"$INSTDIR\Freemont Encoder.exe"

           Delete"$INSTDIR\config.ini"

           ;windows\system32 에 설치된 파일에 대한 레지스트리 삭제 (cmd : regsvr32/u)

           UnRegDLL"$SYSDIR\FLogo.ax"

           ;레지스트리에서 삭제된 파일 삭제

           Delete"$SYSDIR\FLogo.ax"

 

           ;바로 가기 및 설치 디렉토리 삭제

           RMDir"$SMPROGRAMS\Freemont\Freemont Encoder"

           RMDir"$INSTDIR\"

 

SectionEnd

 

; 배포 프로그램 초기화 함수

Function .onInit

           ;설치 언어 선택 페이지를 표시한다.

           !insertmacroMUI_LANGDLL_DISPLAY

 

FunctionEnd

Posted by 나비:D
:
BLOG main image
by 나비:D

공지사항

카테고리

분류 전체보기 (278)
Programming? (0)
---------------------------.. (0)
나비의삽질 (5)
Application (177)
SQL (51)
Web (27)
etc. (14)
Omnia (0)
---------------------------.. (0)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

달력

«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Total :
Today : Yesterday :