안녕하세요, 이상현입니다.
지난 포스팅에서는 Packaging이 필요한 이유에대해서 언급했습니다.
이번 포스팅에서는 실질적으로 Inno Setup을 사용해서, 직접 Packaging을 하는 방법을 적어보겠습니다.
1. Inno Setup 설치
- Inno Setup Version : 6.2.2 - Environment : Windows10
- 다운로드 링크
2. Inno Setup Compiler 실행
3. Inno Setup Script Wizard
1) Create a new Script File Using the Script Wizard
- Create a new Script File Using the Script Wizard 체크 후 하단 OK 버튼 클릭
2) Welcome to the Inno Setup Script Wizard
- 하단에 Next버튼 클릭
- Create a new empty script file은 체크하지 말고 넘어가자.
체크하면 스크립트 작성을 도와주지 않고, 빈 파일이 생성됨
3) Application Information
- EXE 어플리케이션 정보의 이름을 정해준다.
- Version 정보를 작성한다 ex) 1.1
- Application Website 주소를 작성한다 ex) 회사 홈페이지 주소
4) Application Folder
- Installer로 어플리케이션을 설치했을 때 설치될 장소 즉, 경로를 지정한다
- 해당경로에 생성될 폴더 네임을 작성한다.
5) Application Files
- 패키징할 디렉토리 안에 exe 파일을 선택한다
- Add folder 버튼을 눌러 패키징할 dll, exe등이 있는 폴더를 선택해 모든파일을 불러온다.
6) Application File Association
-Next를 눌러 넘어간다.
7) Application Shortcuts
-EXE바로가기에 대한 옵션 창이다. Next를 눌러 넘어간다.
8) Application Documentation
- License file이 있다면 넣어주자.
- 설치전 안내할 정보
- 설치후 안내할 정보
9) Setup Install Mode
- Installing시에 설치 권한 Admin은 관리자권한으로 설치
- Non adminstative는 일반 설치
10) Setup Languages
- 기본적으로 English(영어) 언어가 있지만, 한국어는 없다.
- 일단 English로 선택하고 넘어간다. 다 완료후에 아래 절차를 진행한다.
- 한국어를 적용하려면 Inno Setup Translations (jrsoftware.org) 에서 Korean.isl을 다운받는다.
- 그후 InnoSetup Languages 디렉토리에 해당 파일을 넣어준다. 본인의 경로는 아래와 같다.
c:\Program Files (x86)\Inno Setup 6 \Languages
- 그후에 스크립트 파일에 [Language] Section에 아래 코드를 작성한다.
Name: "Korean"; MessageFile: "compiler:Languages\Korean.isl"
11) Compiler Settings
- Installer파일이 생성될 경로
- Installer 이름, 아이콘, 패스워드 정보를 기입한다. 패스워드는 없다면 공란
12) Inno Setup Prepocessor
- 체크 박스 체크 시 Script에 #define 전처리기가 들어가서 스크립트 작성 시 편리함
4. Script 작성
- 앞에서 설정했던 Script Winzard를 통해서 바로 Installer를 만들 수 있도록 윤곽이 나온다.
- 기능을 추가하고싶다면 해당 스크립트에 추가할 기능을 구글링을 통해서 작성하면 된다.
- 한국어 설정의 경우에 설치 시 위에 설명을 써놓았으니, 그대로 진행하면된다.
- 해당 스크립트 상단에 삼각형 재생버튼을 누르면 바로 컴파일되어, 앞서 지정했던 인스톨러 파일이 저장되는 위치에
Setup파일이 저장된다. - 해당 파일을 Installing하면 해당 패키징한 파일들이 설치될 경로에 설치가되며 끝난다.
- 이후 내가 개발한 프로그램이 정상작동하는지 테스트 해보면 끝이다.
5. 유용할만한 Script 추천
ㅇ 한국어 설정
- 한국어를 적용하려면 Inno Setup Translations (jrsoftware.org) 에서 Korean.isl을 다운받는다.
- 그후 InnoSetup Languages 디렉토리에 해당 파일을 넣어준다. 본인의 경로는 아래와 같다.
c:\Program Files (x86)\Inno Setup 6 \Languages
- 그후에 스크립트 파일에 [Language] Section에 아래 코드를 작성한다.
Name: "Korean"; MessageFile: "compiler:Languages\Korean.isl"
ㅇ제어판 프로그램 추가/제거에서 보이는 프로그램 아이콘 설정
[Setup] <ㅡ Setup 섹션에 작성해야함
UninstallDisplayIcon={app}\{#MyAppExeName}
ㅇ 인스톨링 시 우측 상단에 작은 이미지
- 꼭 bmp파일이여야 하며, 일정 Size로 만들어야함. 해당 해상도는 Inno Setup홈페이지 참고
[Setup] <ㅡ Setup 섹션에 작성해야함
WizardSmallImageFile= D:\packaging\ci.bmp
ㅇ 인스톨링 마지막에 큰 이미지(해당 프로그램 메인 이미지나 제품 이미지 넣으면 좋음)
- 꼭 bmp파일이여야 하며, 일정 Size로 만들어야함. 해당 해상도는 Inno Setup홈페이지 참고
[Setup] <ㅡ Setup 섹션에 작성해야함
WizardImageFile= D:\packaging\product.bmp
ㅇ 제어판에서 프로그램 삭제 시 파일 및 폴더 삭제
[uninstallDelete] <ㅡ uninstallDelete 섹션에 작성해야함 섹션이 없다면 해당섹션을 만들어 그대로 작성하면됨.
Type: files; Name: "{app}\*" Type: filesandordirs; Name: "{app}"
ㅇ 프로그램 삭제 및 설치 시 이미 실행되고 있는 프로세스가 있다면 오류가 나니, 아래처럼 프로세스를 종료해야함
- 본인은 PING.EXE라는 프로세스를 종료하였으나, 보시는 분은 해당 EXE만 본인이 바꿔주면됨.
[Code] <ㅡ Code 섹션에 작성해야함 섹션이 없다면 해당섹션을 만들어 그대로 작성하면됨.
function InitializeUninstall: Boolean;
var
ErrorCode: Integer;
begin
ShellExec('open', 'taskkill.exe', '/f /im {#MyAppExeName}','',SW_HIDE,ewNoWait,ErrorCode);
ShellExec('open', 'taskkill.exe', '/f /im PING.EXE','',SW_HIDE,ewNoWait,ErrorCode);
Result := True;
end;
function InitializeSetup: Boolean;
var
ErrorCode: Integer;
begin
ShellExec('open', 'taskkill.exe', '/f /im {#MyAppExeName}','',SW_HIDE,ewNoWait,ErrorCode);
ShellExec('open', 'taskkill.exe', '/f /im PING.EXE','',SW_HIDE,ewNoWait,ErrorCode);
Result := True;
end;
이것으로 Inno Setup을 이용해, 본인이 만든 EXE 어플리케이션을 패키징하여
고객 또는 친구, 지인 들에게 배포하는 방법을 설명 드렸습니다.
많은 도움이 되었으면 좋겠습니다.
감사합니다.