WiX Toolset

WiX Toolset는 **Windows 설치 프로그램(MSI, EXE)**을 만들기 위한 오픈소스 빌드 도구 세트입니다.
C#, Java처럼 “코드를 컴파일”하듯이, XML로 설치 규칙을 작성 → MSI/EXE로 컴파일하는 방식이 핵심입니다.

https://documentation.help/WiX/WiX_Toolset_Diagram.png
https://bardoloi.github.io/assets/wix/step2.png
https://wixtoolset.gallerycdn.vsassets.io/extensions/wixtoolset/wixtoolsetvisualstudio2022extension/1.0.0.22/1668223914320/Microsoft.VisualStudio.Services.Icons.Default

🔧 WiX Toolset란?

  • 정식 명칭: WiX Toolset
  • 목적: Windows Installer(MSI) 기반 설치 파일 생성
  • 방식: **XML(.wxs)**로 설치 구성 정의 → candle.exe, light.exe로 빌드
  • 라이선스: 오픈소스
  • 사용처: 기업용 데스크톱 앱, 서버 프로그램, 드라이버, 서비스 설치 등

🧩 왜 WiX를 쓰나?

일반적인 설치 제작 도구(NSIS, Inno Setup 등)와 달리 WiX는:

장점설명
표준성MSI 표준을 가장 정확하게 구현
자동화CI/CD에서 완전 자동 빌드 가능
버전 관리XML 기반이라 Git 관리에 적합
기업 환경GPO, SCCM, Intune 배포와 궁합 👍
고급 기능업그레이드, 패치(MSP), 롤백, Repair 지원

👉 그래서 대기업/엔터프라이즈 Windows 앱에서 많이 사용됩니다.


🏗️ 기본 구조 (개념)

WiX는 설치를 다음과 같은 개념으로 나눕니다:

  • Product : 설치 프로그램 전체
  • Directory : 설치 폴더 구조
  • Component : 파일/레지스트리의 최소 설치 단위
  • Feature : 사용자가 선택하는 기능 묶음

⚙️ 빌드 흐름

  1. .wxs (XML) 작성
  2. candle.exe → 컴파일 (중간 오브젝트 생성)
  3. light.exe → 링크 → .msi 생성

Visual Studio에서는 WiX 확장을 통해 버튼 한 번으로 빌드 가능


📦 무엇을 설치할 수 있나?

  • EXE / DLL / 설정 파일
  • Windows 서비스
  • 레지스트리
  • 환경 변수
  • COM 등록
  • IIS 웹사이트
  • 방화벽 규칙
  • 업그레이드 / 제거 / Repair

🆚 다른 설치 도구와 비교

도구특징
WiXMSI 표준, 자동화·기업용 최강
Inno Setup스크립트 간단, 개인/소규모
NSIS가볍고 유연, MSI 아님
InstallShield상용, GUI 중심

📌 이런 경우 WiX가 적합

  • ✔ C# / .NET / C++ Windows 앱 배포
  • ✔ 회사 내부 표준 설치 패키지 필요
  • ✔ 자동 업데이트/업그레이드 관리
  • ✔ CI 파이프라인에서 설치 파일 자동 생성