본문 바로가기
카테고리 없음

윈도우 어플리케이션 msi 패키징 WIX (1)

by 개발하는군인 2023. 3. 18.

회사에서는 윈도우 어플리케이션을 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 생성 

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.  빌드 후 설치  테스트 하면 정상 설치된다.

 

 

 

다음 편에서는 윈도우 서비스를 패키징 하는 내용을 다룰 것이다.