아까 살짝 봤을 때 Inno Setup 배포형 모습이 윈도우와 더 가까워서 이번엔 설치형 인스톨러 생성을 위한 Inno Setup 사용하기 로 했다.
공식 홈페이지 https://jrsoftware.org/isinfo.php 에서 최신 버전 Stable Release 다운 받아주기~
오호 설치 단계에서 한국어 선택이 가능하고 이후 UI에서 한국어로 진행 가능하다. (한국어 UI 너무 반갑다는~ ㅠㅡㅠ)
그리고 설치 완료 후
짜잔~ (한국어 어디 갔지?)
일단 새로 뜬 창에 2가지 옵션이 있는데
Create a new empty script file — 고급 사용자를 위한 옵션
Create a new script file using the Script Wizard (스크립트 마법사 사용) — 이걸 써 보려고 함
이제 설치 마법사 진행 해 보기!
Application Name: Xelloss_MOBIS – 프로그램 이름
Application Version: 1.0 – 프로그램 버전
Application Publisher: YourCompanyName – 회사 이름. 딱히 회사 내에서 쓸꺼라 난 회사 메일 입력했음;
Application Website: 웹사이트 있다면 추가, 없으면 비워두기~
기본 그대로 Next로 진행하면
프로그램은 Program Files 폴더에 자동 설치가 됨. 64비트 시스템에서는 자동으로 C:\Program Files\로 들어가며, 32비트에서는 C:\Program Files (x86)\로 들어감.
[Allow user to change the application folder]에 체크해 두면, 사용자가 설치 폴더를 선택할 수 있음
이제 처음에 [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 없이 설치할 때 사용하는데 여기 선 체크 해제된 상태로 유지
이건 원래 체크 되어 있는데 특정 파일 확장자는 이 프로그램으로 열리게 설정하는 건데…
이번 프로그램 특성 상 그럴 필요 없어서 체크 해제 하고 진행~
이미 체크 되어 있는 [Create a shortcut to the main executable in the Start Menu Programs folder] 이 건 시작 메뉴에 바로 가기 만들거냐 묻는 건데 만들어 둘꺼니깐 체크 유지
마지막 [Allow user to create a desktop shortcut] 이것도 바탕화면에 바로 가기 생성 여부 인데 만들거니깐 체크 상태 유지
라이센스, 공지사항, 설치 후 안내를 말하는 건데 다 없어도 됨. 공지는 어차피 메일로 또 해야하니깐 ㅠㅡㅠ
나중에 변경 사항 공지를 문서로 써서 여기 연결할까.. 0.1초 정도 고민했었음…
이미 기본 선택 되어 있는 [Administrative install mode (install for all users)] 관리자 권한으로 설치되며, 모든 사용자가 해당 프로그램 사용하게 해주는 거기에 체크 유지한 체 Next 진행
2번째는 관리자 권한 없이 설치. 현재 사용자만 해당 프로그램 사용.
3번째는 명령어로 설치 모드 변경 허용인데 딱히…
4번째는 사용자가 설치 모드 선택하는건데 전부 해당 없기에 기본 체크 상태에서 진행~
이것도 기본 세팅 상태로 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:] 특정 윈도우 버전 이상에서만 레지스트리 생성하도록 하는거라는데.. 쓸 일 있을까? 흠…
설치 시 언어인데 기본 영어 하고, 너무나 감사하게도 한국어가 있음! 2개 다 설치 진행~~ 여기서 반함 ㅠㅡㅠ/
[Custom compiler output folder:] 설치 프로그램 저장될 폴더. 지우지 않게 개인적으로 개발 프로그램 안에 배포 폴더 만들어서 따로 관리~
[Compiler output base file name:] 배포 버전 exe 이름. 기본 이름 뒤에 _setup 만 붙이기.. 귀찮아서 그런 거 아님~
[Custom Setup icon file:] 설치 프로그램 아이콘! 중요하지!! .ico 파일만 등록 됨~
마지막은 비밀번호 인데 딱히~~~~
#define은 설치 스크립트에서 변수처럼 사용할 수 있는 기능이라고 함
순간 몰라서 뭔가 했는데.. (어려운 한국말) 그냥 특정 문자열을 변수처럼 정의해두고 (ex>프로그램 이름이나 버전 값) 여러 곳에서 쓰는거임~
전역 변수 같은 녀석은 당연히 체크해서 진행~
와 .. 생각보다 길었다… 다음엔 아마 그냥 다른 버전으로 만들지 않을까 싶지만 그래도 하나씩 따라가니 쉬운~!!
….응? 끝난게 아니다 [Finish] 누르니깐 선택창 2개가 뜨는데
새로운 스크립트 저장할꺼냐. 이름 뭐냐 물어보는건데 써서 예로 진행~
그러면 드디어 아까 지정한 폴더에
방금 저장한 스크립트 이름으로 .iss 파일이 저장되고 배포 파일 exe가 생겼다.
여기서 한국어에 감동함 흑
이후 바탕 화면 바로 가기 만들기에 체크해주고 설치하면 설치가 진행된다. 윈도우 같은 느낌!!!
그래 어제의 레트로 보단 이거지 응? ㅎㅎ
마침 후 바탕화면과 시작하면에 보면 프로그램이 잘 되어 있다.
바로가기 아이콘도 아까 세팅한 .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
스크립트 파일 만들었으니 이제는 프로그램 수정 후 배포할 땐 배포용 파일은 새로 만들고~
스크립트에서 수정할 부분 수정해서
상단에 [RUN] 버튼 or Ctrl + F9 단축키로 진행 후 새로 생성 된 exe 파일 배포~