블로그 이미지
pgmr이상현
Instagram:sh_lee77 머신비전, YOLO, 영상처리, Deep Learning, 딥러닝

calendar

1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

Notice

2023. 11. 30. 14:39 Project

 

안녕하세요, 이상현입니다.

 

지난 포스팅에서는 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 어플리케이션을 패키징하여

고객 또는 친구, 지인 들에게 배포하는 방법을 설명 드렸습니다.

많은 도움이 되었으면 좋겠습니다. 

 

감사합니다.

posted by pgmr이상현