정말 적기 힘드네요...
물론 이렇게 노가다로 일일히 안해도 됩니다.
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
[출처] NSIS - 설치 스크립트 설명 (INT) |작성자 예산계원