WiX Toolset이란? (윈도우 설치셋 제작)
- IT
- 2023. 6. 21.
윈도우에서 특정 프로그램을 설치할 때 exe 확장자의 파일을 많이 사용합니다. 이러한 프로그램 설치셋을 만들기 위해 툴셋을 사용하는데요. 그중 하나가 WiX Toolset입니다.
WiX
WiX는 Windows Installer XML의 약자입니다. WiX Toolset은 윈도우 인스톨러(설치셋)를 XML 소스를 통해 만드는 도구입니다. WiX를 통해 윈도우 인스톨러 패키지(.msi)와 .exe 실행 파일 등을 생성할 수 있습니다. WiX Toolset은 마이크로소프트가 오픈소스로 공개했습니다.
WiX의 중요한 특징 중 하나는 XML 기반의 소스 코드를 사용한다는 것입니다. XML 파일을 이용하면 설치할 파일, 레지스트리 설정, 사용자 인터페이스 등 설치에 필요한 세부 사항을 쉽게 정의할 수 있습니다. XML 소스 파일은 .wxs라는 확장자로 저장됩니다.
윈도우 설치셋 이란?
흔히 프로그램을 설치하도록 하는 파일을 설치셋이라고 부릅니다. 혹시 컴퓨터에 프로그램을 설치한다는 것이 어떤 의미인지 생각해 본 적 있으신가요? 윈도우에서 프로그램을 설치하는 건 프로그램을 구동시키는 모듈들(일반적으로 exe와 dll 파일들)이 정해진 위치에 설치되고, 프로그램을 표현하는 레지스트리 값이 등록되는 것이라 할 수 있습니다.
예를 들어, 프로그램에 필요한 모듈은 대부분 Program Files 밑에 있습니다. 이 경로를 보시면 설치한 프로그램명으로 된 폴더가 있고 그 밑에는 여러 dll 파일이 있을 겁니다. 필요에 따라 System32 같은 윈도우 시스템 모듈이 있는 경로에도 설치되기도 합니다. 레지스트리 편집기를 들어가 보시면 Software 트리 하위에 해당 프로그램과 관련된 레지스트리가 추가된 것도 보실 수 있습니다.
이런 일련의 작업을 하나의 파일을 실행하는 것만으로 완료해주는 것이 설치셋입니다. 즉, 설치셋에는 프로그램 구동에 필요한 모든 것이 묶여 있습니다. 이런 이유로 현업에선 클라이언트(설치셋)을 "말아준다"는 표현을 쓰기도 합니다.
윈도우 설치셋 제작 예시)
다시 주제로 돌아와서, WiX Toolset은 윈도우용 설치셋을 제작하는 도구입니다. 설치셋을 제작하는 대략적인 과정은 이렇습니다.
1. WiX를 위한 XML 기반 소스 코드 파일(.wxs)을 작성합니다. .wxs 파일에는 설치하려는 파일, 디렉터리, 레지스트리 키 등을 정의하고 이들이 어떻게 설치되어야 하는지에 대한 로직을 명시합니다.
예를 들면, MyApplication.exe라는 파일을 Program Files 디렉토리에 설치하는 설치 프로그램을 만들기 위해 아래와 같은 XML 소스를 쓸 수 있습니다.
<Wix xmlns="<http://schemas.microsoft.com/wix/2006/wi>">
<Product Id="*" Name="MyApplication" Language="1033" Version="1.0.0.0" Manufacturer="MyCompany" UpgradeCode="PUT-GUID-HERE">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate />
<Feature Id="ProductFeature" Title="MyApplication" Level="1">
<ComponentGroupRef Id="ProductComponents" />
</Feature>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="MyApplication">
<Component Id="ProductComponent" Guid="PUT-GUID-HERE">
<File Source="MyApplication.exe" />
</Component>
</Directory>
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents">
<ComponentRef Id="ProductComponent" />
</ComponentGroup>
</Fragment>
</Wix>
2. wxs 파일을 컴파일 합니다. candle.exe을 사용합니다. 이 방법으로 MyInstaller.wixobj라는 객체 파일을 생성합니다.
candle.exe MyInstaller.wxs
3. wixobj 파일을 msi 파일로 링크합니다. light.exe를 사용합니다. 이 방법으로 MyInstaller.msi 파일을 생성합니다.
light.exe MyInstaller.wixobj
'IT' 카테고리의 다른 글
사파리(Safari) 방문기록 확인 및 삭제하는 방법 (0) | 2023.06.25 |
---|---|
매핑(Mapping), 바인딩(Binding), 할당(Assigning), 링킹(Linking) 차이 구분 (0) | 2023.06.22 |
IT 인프라 페일오버(Fail-over)란? (0) | 2023.06.21 |
맥북 화면분할 무료 프로그램 추천 및 사용법 (Rectangle) (0) | 2023.06.20 |
유튜브 음원 추출 가장 깔끔한 무료 사이트 추천 및 사용 방법 (0) | 2023.06.20 |