Inno Studio 설치하기
파이썬 프로그램을 배포하기 위해 Inno Studio
를 사용하기로 했다.
우선 파이썬 스크립트를 pyinstaller
를 이용하여 실행파일로 생성하였다. pyinstaller
사용 방법은 이쪽 을 참고하면 된다.
Inno Studio 사용을 위해서는 먼저 innosetup-6.2.0.exe 와 ISStudio_Latest.exe 를 설치해 주어야 한다.
설치 중 별다른 설정 없이 디폴트로 설치해도 상관 없다.
Installation 파일 생성
Inno Script Studio
installation 파일을 생성하기 위한 스크립트를 옵션 설정을 통해 자동으로 생성해 주는 툴이다. *.iss 확장자를 통해 직접 스크립트를 지정해도 되지만, 개인적으로는 Studio를 통해 스크립트를 생성하는 방법이 더 편리했다.
Tools Options
Inno Script Studio를 실행하고 다음과 같이 설정을 맞춰 준다.

- 위의 이미지와 같이
Tools → Options
메뉴에 들어간다.

- 좌측 메뉴바의
Compiler Settings
메뉴를 클릭하면 컴파일러를 설정할 수 있다. Compiler directory
에 Inno Setup 프로그램을 설치한 위치를 지정해 준다.
Project Setup Options

- 위의 이미지와 같이 상단 메뉴바의
Project → Setup Options → Appearance
메뉴에 들어간다.

- 해당 어플리케이션 설치 시 띄울 화면에 대한 옵션을 지정할 수 있다.
Backgroun window visible
옵션에 대한 체크 박스를 활성화하면 백그라운드 화면에 대한 설정을 지정할 수 있다.

- 해당
Application Details
메뉴에서는 어플리케이션의 이름, 버전, 라이센스 등을 설정할 수 있다. Application Details
: 어플리케이션의 이름, 버전, 저작권 등을 설정할 수 있다.License & Information
: 라이센스에 대한 정보 파일을 첨부할 수 있다. txt 파일로 간단히 작성하여License file
에 업로드하면 된다.

-
Additional Settings
Additional Settings
메뉴에서 어플리케이션 설치 시 추가 옵션을 설정할 수 있다.Changes associations
: 어플리케이션 설치 및 제거 시 파일 연결 정보를 새로 고치도록 한다.Always restart
: 어플리케이션 설치가 완료되면 시스템을 다시 시작하라는 메세지를 띄운다.Restart if needed by run
: 어플리케이션 설치 후 재시작 여부.Allow cancel during install
:어플리케이션 설치 중 사용자가 취소 가능에 대한 옵션. 체크 박스 비활성화 시[Cancel]
버튼을 비활성화하고[Close]
버튼의 클릭을 무시한다.Time stamps in UTC
: 타임스탬프롤 UTC로 설정할지 여부. 체크 박스 비활성화 시 현지 시간으로 설정된다.Changes enviroment
: 체크 박스 활성화 시 어플리케이션 설치 완료 후 실행 중인 다른 응용 프로그램에서 레지스트리 환경 변수를 다시 로드해야 함을 알린다.
-
Setup Icon
: Install 또는 Uninstall 에 사용할 아이콘 파일을 지정한다.
-
Create application folder
: 어플리케이션 설치 시 폴더를 생성할지 여부.Default folder name
: 설치 시 설치 위치 선택 페이지에 사용되는 기본 디렉토리. 일반적으로{디렉토리 상수}
가 앞에 붙는다.- Inno Studio 에서 주로 사용하는 디렉토리 상수는 다음과 같다.
변수명 경로 {app} 사용자가 설치 시 선택하는 어플리케이션 디렉토리 {win} C:\Windows {sys} C:\Windows\System32 {sysnative} C:\Windows\System {src} 어플리케이션이 설치된 디렉토리 {sd} C:\ {commonpf} C:\Program Files {commonpf32} C:\Program Files (x86) {commonpf64} C:\Program Files {group} 사용자가 어플리케이션 설치 시 선택한 시작 메뉴 디렉토리 {localappdata} 사용자의 로컬 응용 프로그램 데이터 폴더 경로 (C:\Users\계정명\Appdata\Local) Use previous application folder
: 어플리케이션 설치 시작 시 레지스트리에서 동일한 어플리케이션이 이미 설치되어 있는지 확인 여부. 체크박스가 활성화되어 있고 이미 설치되어 있으면 이전 설치의 디렉토리를 설치 기본 디렉토리로 사용한다.Disable folder page
yes
: 어플리케이션 설치 위치 선택 페이지가 표시되지 않는다.auto
: 어플리케이션 설치 시 동일 어플리케이션이 설치되어 있는지 확인 후, 설치되어 있으면 설치 위치 선택 페이지가 표시되지 않는다.no
: 어플리케이션 설치 위치 선택 페이지를 띄운다.
Allow root folder
: 체크 박스 활성화 시 어플리케이션 설치 시 루트 디렉토리(C:)를 입력할 수 있다.Allow UNC path
: 체크 박스 활성화 시 어플리케이션 설치 시 UNC 경로(\server\share)를 입력할 수 있다.Enable folder does not exist warning
: 체크 박스 활성화 시 어플리케이션 설치 중 사용자가 선택한 디렉토리가 존재하지 않으면 메시지 박스가 표시된다.Folder exists warning
auto
: 어플리케이션 설치 시 디렉토리가 이미 있을 경우 해당 디렉토리에 설치할지 여부를 묻는 메시지가 표시된다.yes
: 어플리케이션 설치 시 사용자가 기존 디렉토리를 선택할 때 항상Directory Exists
메시지를 표시한다.no
: 기존 디렉토리를 선택하더라도 메시지가 표시되지 않는다.
Append default folder name
: 체크 박스 활성화 시Default folder name
의 마지막 구성 요소가 어플리케이션 설치 위치에 자동으로 추가된다.
-
Uninstall Settings
-
Uninstallable
: uninstall 프로그램을 포함할지 여부를 선택한다.yes
일 경우 어플리케이션 설치 시 uninstall 파일이 자동으로 생성된다.no
일 경우 수동으로 프로그램을 제거해야 한다. -
expression
일 경우 아래 화면과 같이portable mode
를 지정할 수 있다. -
또는 스크립트에서 아래와 같이 지정할 수 있다.
[Setup] Uninstallable=not IsTaskSelected('portablemode') [Tasks] Name: portablemode; Description: "Portable Mode"
-
Create registry key
: 프로그램 추가/제거 제어판에 어플리케이션 항목을 추가할지 여부. -
Log mode
append
: 기존 uninstall 로그에 추가된다.new
: Inno Setup 1.3 이하 버전에서만 동작한다.overwrite
: 기존 uninstall 로그를 덮어씌운다. 해당 옵션은 권장하지 않는다.
-
Uninstall files folder
: uninstall 파일이 생성될 디렉토리를 지정한다. -
Update uninstall log AppName
: 기존 uninstall 로그에 추가할 때 로그의 AppName 필드를 현재 설치된 어플리케이션의 AppName으로 바꿀지 여부를 선택한다. -
Restart computer
: uninstall 수행 후 시스템 재부팅 메시지를 표시할지 여부를 선택한다.
-
-
Programs and Feature Settings
Display name
: 프로그램 추가/제거 제어판에서 표시될 이름을 지정한다. 값이 없으면 어플리케이션명이 사용된다.Display size
: uninstall 레지스트리 키의 EstimatedSize 를 지정한다. 만일 값이 설정되지 않은 경우 설치된 모든 파일의 크기를 가져온다.Modify path
: 프로그램 추가/제거 제어판에서 해당 어플리케이션에modify
버튼이 표시된다.Display icon
: 프로그램 추가/제거 제어판에 표시할 아이콘을 지정한다. 현 버전에서는 위의 화면과 같이 디렉토리 상수{uninstallexe}
를 설정해 주면 된다.
-
Compiler Settings
Use setup loader
: 체크 박스 활성화 시 단일 *.exe로 컴파일 된다. 디버깅을 원할 시 비활성화하며 *.exe, *-0.bin, *-1.bin 세 가지 파일로 컴파일 된다. 이때, 디스크 스패닝이 활성화된 경우 해당 옵션을 활성화해야 한다. 비활성화 시 파일을 찾지 못하는 오류가 발생할 수 있다.Merge duplicate files
: 체크 박스 활성화 시 설치에 동일한 파일이 여러 개 있는 경우 스크립트에서 동일한 원본 파일을 지정하여 파일 크기를 감소시킬 수 있다.Encryption
: 설치 파일에 대해 암호화를 설정할 수 있다. 암호화 시 사용되는 알고리즘은 ARCFOR 이다.Terminal services aware
: install 및 uninstall 실행 시 헤더에Terminal Services aware
플래그 설정 여부. 해당 설정에 대해서는yes
를 권장한다.Setup logging
: 로그 파일을 생성할지 여부.Output folder
: installation 파일이 생성되어 저장될 디렉토리 경로Output base filename
: 생성하고자 하는 installation 파일명Soure folder
: 생성하고자 하는 Source 파일이 저장되어 있는 디렉토리Output manifest file
: 컴파일된 파일에 대한 세부 정보 매니페스트 파일을 저장할 디렉토리. 값이 없을 경우 매니페스트 파일을 생성하지 않는다.
-
Architecture Settings
Install in 64-bit mode
: 64비트 설치 모드를 사용할지 여부. 해당 프로그램이 64비트 프로세스에서만 실행되는 경우 설정한다. 값이 지정되지 않으면 32비트 모드로 설치된다.(black)
x64
arm64
ia64
Architecures allowed
: 설치를 실행할 수 있는 프로세서 아키텍쳐를 지정한다. 값이 지정되지 않으면 32비트 코드를 실행할 수 있는 모든 프로세서 아키텍쳐에서 해당 어플리케이션이 실행된다.(blank)
x86
x64
arm64
ia64
Enable disk spanning
: 디스크 스패닝 기능 활성화 여부. 컴파일하고자 하는 파일의 크기가 약 2GB가 넘을 경우 해당 옵션 활성화가 필수적이다.Disk cluster size
: 디스크 미디어의 클러스터 크기를 설정한다.Reserve bytes
: 첫 번째 디스크에서 예약할 사용 가능한 최소 바이트 수를 설정한다. README 와 같은 파일을 첫 번재 디스크에 복사할 때 사용한다.Disk slice size
: 디스크 조각(*-n.bin)당 최대 용량을 설정한다.Slice per disk
: 생성할 bin 파일의 개수를 설정한다.
Files
설정이 완료되었다면 컴파일 할 파일을 추가해 주어야 한다.
- 위의 화면과 같이 좌측 메뉴 중
Files
메뉴를 선택한 후 상단의Add Folder
메뉴를 선택한다. - 컴파일 할 스크립트 또는 파일이 저장되어 있는 디렉토리를 선택한다.
- 만일 선택할 디렉토리가 복수 개인 경우, 디렉토리가 저장된 상위 디렉토리를 선택한다.
- 바탕 화면에 바로가기 등의 아이콘을 지정할 수 있다.
- 위의 화면과 같이 좌측 메뉴 중
Icons
메뉴를 선택한 후New Item
메뉴를 선택한다.
- 위의 화면과 같은 아이콘 설정 화면이 뜨게된다.
Name
: 아이콘에서 보일 프로그램 명칭을 설정한다.Destination Dir
: 아이콘을 생성할 위치를 지정한다. 바탕화면에 바로가기를 만들기 위해{userdesktop}
을 선택했다.Filename
: 바로가기 아이콘 실행 시 호출할 파일을 지정한다.Working Directory
: 바로가기 아이콘 실행 시 호출할 파일이 저장되어 있는 디렉토리를 설정한다.Icon Filename
: 생성할 아이콘에 설정할 *.ico 파일을 선택한다.
Script
위의 옵션 설정이 모두 완료되었다면 다음과 같은 스크립트가 자동으로 생성된다.
스크립트를 보다 쉽게 생성하기 위하여 Setup Options 를 설정한 것이므로 직접 스크립트를 작성해도 무관하다.
만일 중간에 설정을 변경하고 싶다면 직접 스크립트를 수정하여도 된다. 스크립트를 수정하면 Setup Options 값이 자동으로 바뀐다.
- 스크립트 작성이 완료되었으므로 상단 메뉴 바에서
Compile the current Inno Setup Script
메뉴를 클릭하여 스크립트를 컴파일하면 완료된다. - 최초 컴파일 시 스크립트 파일(*.iss) 의 저장 여부를 묻는 메시지 박스가 뜬다. 이때 저장 여부는 스크립트 실행에 영향을 끼치지 않으므로 필요에 따라 선택하면 된다.
주의할 점
스크립트 컴파일 시 [Icons]
섹션에서 Name : ~~
부분에서 에러가 발생하는 경우가 있다.
이때 에러가 나는 부분을 제거하면 정상적으로 실행된다.
추가 옵션
Uninstall
프로그램 uninstall 시 해당 어플리케이션으로 생성된 파일만 제거하고 추가로 생성된 파일 또는 폴더 등은 그대로 남아있다. 또한, 프로그램 설치를 위해 생성한 디렉토리의 흔적도 그대로 남아있다.
만일 흔적을 모두 지우고 싶으면 스크립트 내 [UninstallDelete]
섹션을 통해 지정할 수 있다.
[UninstallDelete]
Type: filesandordirs; Name: "DirectoryName"
- 위와 같은 스크립트를 추가함으로써 uninstall 시 해당되는 디렉토리 및 파일은 모두 삭제된다.
Type
에 지정 가능한 옵션은 다음과 같다.files
: 해당 옵션에 대한Name
의 매개변수 값은 파일명이어야 한다. 값과 일치하는 파일을 삭제한다.filesandordirs
: 해당 옵션에 대한Name
의 매개변수 값은 디렉토리명이어야 한다. 동작은files
와 동일하며 값이 일치하는 디렉토리와 하위 파일 및 디렉토리를 모두 삭제한다.dirifempty
: 해당 옵션에 대한Name
의 매개변수 값은 디렉토리명이어야 한다. 값과 일치하는 디렉토리 내에 하위 파일 및 디렉토리가 없는 경우에만 삭제한다.