인턴 기록

NSIS 도구 활용하여 기존 설치 파일(exe 파일) 수정하기

5353 2024. 9. 25. 09:44
반응형

NSIS 란

NSIS(Nullsoft Scriptable Install System)는 Windows 환경에서 설치 프로그램을 만들 때 사용하는 도구로, 주로 프로그램을 쉽게 배포, 설치할 수 있도록 해주며, 스크립트 기반으로 작동하여 매우 유연한 설치 프로세스를 지원한다. 설치할 파일 설치 과정에서 할 작업들을 스크립트로 작성하여 배포 가능한 **설치 파일(.exe)**을 생성합니다. 따라서 스크립트에서 프로그램 설치, 바로가기 생성, 레지스트리 편집, 제거 기능까지 모두 처리가능하다.

2. NSIS 스크립트 구조

NSIS 스크립트는 크게 다음과 같은 구조로 나뉩니다:

  • OutFile: 생성될 설치 프로그램 파일 지정
  • InstallDir: 프로그램이 설치될 기본 경로 지정
  • Section: 실제 설치 작업(파일 복사, 바로가기 생성 등) 정의
  • Uninstall Section: 프로그램을 제거할 때 수행될 작업 정의

 

7일차에 이어서 내가 하려는 작업은,

  1. Python으로 만든 EXE 파일을 설치 프로그램에 포함,
  2. 설치할 때 관리자 권한을 요구하여 Program Files에 설치,
  3. 설치 후 자동으로 실행되는 프로그램을 설정하는 것이다

 


 

!define

NSIS 스크립트에서 상수를 정의하는 명령어로,  파일 경로나 이름, 특정 옵션 등을 한 번 정의해 놓고 스크립트 전체에서 일관성 있게, 여러번 쓰고 싶을 때 쓴다.

아래는 예시 코드

!define INSTALL_DIR "$PROGRAMFILES\MyApp"
!define EXE_FILE "MyApp.exe"

OutFile "MyAppInstaller.exe"
InstallDir "${INSTALL_DIR}"

Section "MainSection"
    SetOutPath $INSTDIR
    File "${EXE_FILE}"
    CreateShortcut "$DESKTOP\MyApp.lnk" "$INSTDIR\${EXE_FILE}"
SectionEnd

 

  • !define INSTALL_DIR "$PROGRAMFILES\MyApp": INSTALL_DIR라는 상수를 정의,설치 경로를 지정
  • !define EXE_FILE "MyApp.exe": EXE_FILE 상수를 정의하고 실행 파일 이름 지정
  • ${}: 상수 값을 참조할 때 , 사용 ,위 코드에  ${INSTALL_DIR}는 INSTALL_DIR에 정의된 경로

 

주석 ;

NSIS Script 에서는 다른 파일과달리 ;을 주석으로 사용한다.

아래 예시

; 주석1
OutFile "MyAppInstaller.exe"  ; 주석2

 

 

 

반응형