me

설치형 인스톨러 생성을 위한 Inno Setup 사용하기
2025.03.18 / , ,

아까 살짝 봤을 때 Inno Setup 배포형 모습이 윈도우와 더 가까워서 이번엔 설치형 인스톨러 생성을 위한 Inno Setup 사용하기 로 했다.

1. 프로그램 설치하기

공식 홈페이지 https://jrsoftware.org/isinfo.php 에서 최신 버전 Stable Release 다운 받아주기~

오호 설치 단계에서 한국어 선택이 가능하고 이후 UI에서 한국어로 진행 가능하다. (한국어 UI 너무 반갑다는~ ㅠㅡㅠ)

그리고 설치 완료 후

Inno Setup 사용하기 - 설치 완료 후 모습

짜잔~ (한국어 어디 갔지?)

일단 새로 뜬 창에 2가지 옵션이 있는데

Create a new empty script file — 고급 사용자를 위한 옵션

Create a new script file using the Script Wizard (스크립트 마법사 사용) — 이걸 써 보려고 함


2. 스크립트 마법사 설정하기 – Inno Setup Script Wizard

스크립트 마법사 설치1

이제 설치 마법사 진행 해 보기!

Application Information (프로그램 정보) 넣는 곳!

스크립트 마법사 설치2

Application Name: Xelloss_MOBIS – 프로그램 이름

Application Version: 1.0 – 프로그램 버전

Application Publisher: YourCompanyName – 회사 이름. 딱히 회사 내에서 쓸꺼라 난 회사 메일 입력했음;

Application Website: 웹사이트 있다면 추가, 없으면 비워두기~

Application Folder (폴더 정보) 넣는 곳!

스크립트 마법사 설치3

기본 그대로 Next로 진행하면

프로그램은 Program Files 폴더에 자동 설치가 됨. 64비트 시스템에서는 자동으로 C:\Program Files\로 들어가며, 32비트에서는 C:\Program Files (x86)\로 들어감.

[Allow user to change the application folder]에 체크해 두면, 사용자가 설치 폴더를 선택할 수 있음

Application FIles (배포 파일) 넣는 곳! 중요!!

스크립트 마법사 설치4

이제 처음에 [Browser] 버튼을 눌러서 내 배포 파일의 기본 실행 파일을 선택한다. 내 경우 배포 파일의 exe가 되겠지~! 반드시 .exe 파일로 선택해야 함.

그리고 [Add folder…] 버튼을 눌러서 내 배포 파일 전부의 폴더를 선택한다.

내 경우 dist/1.0/ 폴더 안에 있기에 1.0 폴더를 선택해 주었다.

그러면 팝업 창이 뜨는데 선택 폴더 아래 모든 하위 폴더 파일들도 포함할꺼냐는 거니깐 예로 눌러서 모든 파일을 설치 패키지에 포함함!

그 외 기본 체크 되어 있는 [Allow user to start the application after Setup has finished] 이건 설치 후 지금 프로그램 실행 같은 옵션이라 체크 유지~

[The application doesn’t have a main executable file] 체크 안되어 있는 이 건 exe 없이 설치할 때 사용하는데 여기 선 체크 해제된 상태로 유지

File Association (파일 연결)

스크립트 마법사 설치5

이건 원래 체크 되어 있는데 특정 파일 확장자는 이 프로그램으로 열리게 설정하는 건데…

이번 프로그램 특성 상 그럴 필요 없어서 체크 해제 하고 진행~

Shortcut Creation (바로가기 생성)

스크립트 마법사 설치5

이미 체크 되어 있는 [Create a shortcut to the main executable in the Start Menu Programs folder] 이 건 시작 메뉴에 바로 가기 만들거냐 묻는 건데 만들어 둘꺼니깐 체크 유지

마지막 [Allow user to create a desktop shortcut] 이것도 바탕화면에 바로 가기 생성 여부 인데 만들거니깐 체크 상태 유지

Documentation (문서 파일)

스크립트 마법사 설치6

라이센스, 공지사항, 설치 후 안내를 말하는 건데 다 없어도 됨. 공지는 어차피 메일로 또 해야하니깐 ㅠㅡㅠ

나중에 변경 사항 공지를 문서로 써서 여기 연결할까.. 0.1초 정도 고민했었음…

Setup Install Mode (설치 모드!)

스크립트 마법사 설치7

이미 기본 선택 되어 있는 [Administrative install mode (install for all users)] 관리자 권한으로 설치되며, 모든 사용자가 해당 프로그램 사용하게 해주는 거기에 체크 유지한 체 Next 진행

2번째는 관리자 권한 없이 설치. 현재 사용자만 해당 프로그램 사용.

3번째는 명령어로 설치 모드 변경 허용인데 딱히…

4번째는 사용자가 설치 모드 선택하는건데 전부 해당 없기에 기본 체크 상태에서 진행~

Registry Keys And Values (레지스트리)

스크립트 마법사 설치8

이것도 기본 세팅 상태로 Next 진행

[Windows registry file (.reg) to import: ] 경우 특별히 레지스트리 값 설정할 경우에 .reg 값 지정해서 쓰는 걸로 필요한데 이번엔 필요 없음

[Delete keys which are empty on uninstall] 언 인스톨시 빈 레지스트리 키 삭제

[Also delete keys which are not empty] 언 인스톨 시 비어 있지 않은 레지스트리 키도 삭제. – 너무 무서운데?

[Delete values on uninstall] 언 인스톨시 등록한 레지스트리 값 삭제. 깔끔한게 좋지!

[Create only if Windows’ version is at least:] 특정 윈도우 버전 이상에서만 레지스트리 생성하도록 하는거라는데.. 쓸 일 있을까? 흠…

Languages (언어)

스크립트 마법사 설치9

설치 시 언어인데 기본 영어 하고, 너무나 감사하게도 한국어가 있음! 2개 다 설치 진행~~ 여기서 반함 ㅠㅡㅠ/

Compiler (컴파일러)

스크립트 마법사 설치10

[Custom compiler output folder:] 설치 프로그램 저장될 폴더. 지우지 않게 개인적으로 개발 프로그램 안에 배포 폴더 만들어서 따로 관리~

[Compiler output base file name:] 배포 버전 exe 이름. 기본 이름 뒤에 _setup 만 붙이기.. 귀찮아서 그런 거 아님~

[Custom Setup icon file:] 설치 프로그램 아이콘! 중요하지!! .ico 파일만 등록 됨~

마지막은 비밀번호 인데 딱히~~~~

Preprocessor (프리프로세서 지시문)

스크립트 마법사 설치11

#define은 설치 스크립트에서 변수처럼 사용할 수 있는 기능이라고 함

순간 몰라서 뭔가 했는데.. (어려운 한국말) 그냥 특정 문자열을 변수처럼 정의해두고 (ex>프로그램 이름이나 버전 값) 여러 곳에서 쓰는거임~

전역 변수 같은 녀석은 당연히 체크해서 진행~

Inno Setup 사용하기 - 설치 마법사 설치 완료

와 .. 생각보다 길었다… 다음엔 아마 그냥 다른 버전으로 만들지 않을까 싶지만 그래도 하나씩 따라가니 쉬운~!!

….응? 끝난게 아니다 [Finish] 누르니깐 선택창 2개가 뜨는데

새로운 스크립트 저장할꺼냐. 이름 뭐냐 물어보는건데 써서 예로 진행~

그러면 드디어 아까 지정한 폴더에

방금 저장한 스크립트 이름으로 .iss 파일이 저장되고 배포 파일 exe가 생겼다.


Inno Setup 사용하기 – 배포 파일 실행하기

Inno Setup 사용하기 - 언어 한국어 가능

여기서 한국어에 감동함 흑

이후 바탕 화면 바로 가기 만들기에 체크해주고 설치하면 설치가 진행된다. 윈도우 같은 느낌!!!

그래 어제의 레트로 보단 이거지 응? ㅎㅎ

마침 후 바탕화면과 시작하면에 보면 프로그램이 잘 되어 있다.

바로가기 아이콘도 아까 세팅한 .ico 파일로 잘 되어 있고~!!


기타 – 배포 스크립트

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "Xelloss_MOBIS"
#define MyAppVersion "1.0"
#define MyAppPublisher "lai4@hansem.com"
#define MyAppExeName "Xelloss_MOBIS.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{67093ACE-858E-4AD8-A0BB-425128C884D1}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
DefaultDirName={autopf}\{#MyAppName}
UninstallDisplayIcon={app}\{#MyAppExeName}
; "ArchitecturesAllowed=x64compatible" specifies that Setup cannot run
; on anything but x64 and Windows 11 on Arm.
ArchitecturesAllowed=x64compatible
; "ArchitecturesInstallIn64BitMode=x64compatible" requests that the
; install be done in "64-bit mode" on x64 or Windows 11 on Arm,
; meaning it should use the native 64-bit Program Files directory and
; the 64-bit view of the registry.
ArchitecturesInstallIn64BitMode=x64compatible
DisableProgramGroupPage=yes
; Uncomment the following line to run in non administrative install mode (install for current user only).
;PrivilegesRequired=lowest
OutputDir=D:\Develop\D_mobis2\#배포
OutputBaseFilename=Xelloss_MOBIS_Setup
SetupIconFile=D:\Develop\D_mobis2\img\icon.ico
SolidCompression=yes
WizardStyle=modern

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "korean"; MessagesFile: "compiler:Languages\Korean.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "D:\Develop\D_mobis2\dist\1.0\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Develop\D_mobis2\dist\1.0\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent


Inno Setup 사용하기 – 이후 업데이트 배포 방법

Inno Setup 사용하기 - 이후 배포

스크립트 파일 만들었으니 이제는 프로그램 수정 후 배포할 땐 배포용 파일은 새로 만들고~

스크립트에서 수정할 부분 수정해서

상단에 [RUN] 버튼 or Ctrl + F9 단축키로 진행 후 새로 생성 된 exe 파일 배포~


비교용: 설치형 인스톨러 생성을 위한 NSIS 사용하기