본문 바로가기
IT Tools

msi 패키지 만들기 - Inno Setup 설치 및 사용 방법 (한글 언어팩)

by 떠도리c 2024. 8. 29.
반응형

Inno Setup

Flexa사에서 제공하는 Freeware이고 기능은 상용 소프트웨어인 InstallShield와 동일한 기능을 가지고 있다.

여러 파일을 하나의 설치 파일로 만들 때 사용되는 소프트웨어다.

 

Inno Setup 다운로드 페이지 : http://www.jrsoftware.org/isdl.php

 

Inno Setup Downloads

ISCrypt.dll Netherlands 1,426,231 2.5 KB Encryption module for Inno Setup.To install, simply place the file in your Inno Setup directory.

jrsoftware.org

Inno Setup 한글 언어팩 다운로드

https://github.com/jrsoftware/issrc/blob/master/Files/Languages/Unofficial/Korean.isl

 

GitHub - jrsoftware/issrc: Inno Setup is a free installer for Windows programs. First introduced in 1997, Inno Setup today rival

Inno Setup is a free installer for Windows programs. First introduced in 1997, Inno Setup today rivals and even surpasses many commercial installers in feature set and stability. - GitHub - jrsoftw...

github.com

한글 언어팩 적용

  • 언어팩 다운로드 페이지에서 설정 텍스트를 복사한 후 컴퓨터 메모장에 내용 저장 (저장 확장자 .isl)
  • Inno Setup 설치 경로 (C:\Program Files (x86)\Inno Setup 5\Languages)에 Korean.isl 파일 붙여넣기

 

Inno Setup 사용법

section 가이드 https://jrsoftware.org/ishelp/index.php?topic=setupsection

Inno Setup은 Section 별로 다양한 기능을 가지고 있다.

  • [Setup] : 설치 파일의 기본 정보와 설치 과정에 대한 설정
  • [Languages] : 설치 언어팩
  • [Files] : 설치 파일 정보/경로 설정
  • [Run] : Files 섹션의 파일들이 설치 대상 PC에 모두 이동된 후 다음 동작에 대한 설정
    예) .exe .txt 파일을 PC에 설치 후  [Run] 섹션에서 .exe 파일 실행을 설정을 통해 .exe를 바로 실행 할 수 있음
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

; 기본 패키지 정보 설정
#define MyAppName "Package Name"
#define MyAppVersion "Package Version"
#define MyAppPublisher "Company"
#define MyAppURL "https://www.ex.com"
#define MyAppExeName "MyProg.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.)

; 설치되는 패키지의 GUID 생성
; GUID 재생성하여 사용. 메뉴 > Tools > Generate GUID 클릭하여 생성
AppId={98A41608-1D13-4768-B698-A82B46BC084F} ;예시
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DisableDirPage=yes
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=yes
; Uncomment the following line to run in non administrative install mode (install for current user only.)
;PrivilegesRequired=lowest

; Output 파일명 설정
OutputBaseFilename=exInstaller
Compression=lzma
SolidCompression=yes
WizardStyle=modern

; 재시작하는 옵션 (yes:재시작, no:재시작안함)
;AlwaysRestart=no

; 설치 -> 패키징 파일 삭제후 재시작 선택화면 안나오게하는 옵션 (yes:화면 나옴, no:화면 안나옴)
RestartIfNeededByRun=no


[Languages]
; 언어팩 설정. 원하는 언어 주석제거 후 사용
Name: "en"; MessagesFile: "compiler:Default.isl"
;Name: "korean"; MessagesFile: "compiler:Languages\Korean.isl"


[Files]
;Source = 패키징 할 파일/폴더 경로지정 ==> 파일 경로 지정 
;DestDir = 패키징 파일이 해제되는 경로, 기본경로({app})=c:\Program Files or c:\Program Files(x86)
;Flags = Default
; 예시
Source: "C:\Users\test\Desktop\example64.msi"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check:IsWin64;
Source: "C:\Users\test\Desktop\example86.msi"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check:"not IsWin64";
Source: "C:\Users\test\Desktop\example.txt"; DestDir: "C:\Program Files\"; Flags: ignoreversion recursesubdirs createallsubdirs;
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"

[Run]
; Parameters {app}\설치파일명 , ISWin64 = OS 64bit 경우 실행
Filename: "msiexec.exe"; Parameters: "/i""{app}\example64.msi"; Check:IsWin64; 

; Parameters {app}\설치파일명 , ISWin64 = OS 32bit 경우 실행
Filename: "msiexec.exe"; Parameters: "/i""{app}\example86.msi"; Check:"not IsWin64";

; 모든 과정이 끝난 후 PC에 설치된/압축해제된 패키지 파일 삭제
Filename: "{app}\unins000.exe"; Parameters: "/SILENT";
 
반응형