회사에서는 윈도우 어플리케이션을 WIX를 사용해서 msi 패키징한다.
tool 사용법을 익히기 위해 정의, 장단점를 설명하고 개인 프로젝트를 WIX를 사용해서 패키징 해본다.
Windows Installer XML Toolset ?
1. WIX는 xml 파일을 이용하는 도구들을 사용하여 msi 설치파일로 변경해주는것
2. 오픈소스 무료로 사용
3. CI/CD에 적합
4. 포맷이 XML 이므로 소스 컨트롤에 의한 버전관리 용이
5. VisualStudio에 통합되어 프로젝트를 쉽게 생성 가능
Visual Studio 에서 wix 환경 구축하기
1. https://wixtoolset.org/docs/wix3/ 에서 Wix Toolset build tools v3.xx 버전 다운로드
2. VisualStudio 에 맞는 버전 다운로드
2. Wix setup project 생성
3. GUID 생성 후 Product Id에 지정
Studio 메뉴 -> 도구 -> GUID 만들기 -> 레지스트리 서식 복사
4. Manufacturer 지정
작성하는 사람의 식별자 입력
5. ICE validation 설정
6. 빌드
7. UI 및 특정 기능을 위한 Reference File 추가
8. Wix Schema의 element 추가
1) ProductId : 현재의 설치 패키지를 구분하는 중요한ID 포맷은 GUID 형태이며, 업데이트 시 새로 GUID를 생성하여 빌드 해야함.
2) Upgrade Id : 업그레이드를 위한 ID로서 한번 GUID가 정해졌으면 이후 변경 X
9. 설치 UI control
10. heat 사용해 파일 정보 등록
1) Build Output 지정
2) Build Events 입력
"C:\Program Files (x86)\WiX Toolset v3.11\bin\heat.exe" dir sourceTaget 경로 -cg cg_SignTest -gg -scom -sreg -sfrag -srd -out 아웃풋 경로
3) 아웃풋에서 나온 경로를 Fragment를 Product.wxs 아래에 붙여넣기 한다.
4) 아웃풋에서 나온 wxs는 삭제한다.
5) 기존 Fragment를 삭제한다.
6) 복사한 2개의 Fragment 중 두번째 Fragment에 Directory = "INSTALLFOLDER" 변
7) 복사한 2개의 Fragment 중 첫번째 Fragment안에 있는 모든 File들의 경로가 SourceDir로 시작한다. 이 SourceDir을
실제 경로로 바꾸어 주어야 한다.
※ TARGETDIR의 Name을 SourceDir로 선언해 주는 부분이므로 바뀌면안된다.
8) <Feature>에서 어떤 ComponentGroupRef를 설치할 것인지 변경해주어야 한다. 두번째 Fragment에서 추가해준 ComponentGroup을 참조해 주어야 하므로 Feature 부분의 ComponentGroupRef의 Id를 고쳐준다.
11. 빌드 후 설치 테스트 하면 정상 설치된다.
다음 편에서는 윈도우 서비스를 패키징 하는 내용을 다룰 것이다.