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


🔧 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 2 3 4 5 6 7 8 9 10 11 |
<Product ...> <Directory Id="ProgramFilesFolder"> <Directory Id="INSTALLFOLDER" Name="MyApp"> <Component Id="MainExe"> <File Source="MyApp.exe" /> </Component> </Directory> </Directory> </Product> |
⚙️ 빌드 흐름
.wxs(XML) 작성- candle.exe → 컴파일 (중간 오브젝트 생성)
- light.exe → 링크 → .msi 생성
Visual Studio에서는 WiX 확장을 통해 버튼 한 번으로 빌드 가능
📦 무엇을 설치할 수 있나?
- EXE / DLL / 설정 파일
- Windows 서비스
- 레지스트리
- 환경 변수
- COM 등록
- IIS 웹사이트
- 방화벽 규칙
- 업그레이드 / 제거 / Repair
🆚 다른 설치 도구와 비교
| 도구 | 특징 |
|---|---|
| WiX | MSI 표준, 자동화·기업용 최강 |
| Inno Setup | 스크립트 간단, 개인/소규모 |
| NSIS | 가볍고 유연, MSI 아님 |
| InstallShield | 상용, GUI 중심 |
📌 이런 경우 WiX가 적합
- ✔ C# / .NET / C++ Windows 앱 배포
- ✔ 회사 내부 표준 설치 패키지 필요
- ✔ 자동 업데이트/업그레이드 관리
- ✔ CI 파이프라인에서 설치 파일 자동 생성
