WIX를 이용하여 설치 파일을 만드는 과정은 아래와 같습니다.
첫 번째 폴더의 파일들을 읽어 기본이 되는 WXS 파일을 생성합니다.
2. -dr : WXS에서의 Directory 이름을 지정합니다.
3. -cg: WXS에서의 ComponentGroup 이름을 지정합니다.
4. -out: 생성할 WXS 파일 이름을 지정합니다.
이렇게 해서 WXS 파일을 생성하면 아쉽게도 32비트 용을 설치됩니다. 이것을 64비트로 바꾸려면 Component Attribute에 Win64='yes' 속성을 추가해 줘야 합니다.
예전에 수백 개의 Component에 일일이 속성을 추가해 주던 기억이 나네요^^;
이렇게 무식한 방법 대신 xslt 파일을 이용하면 속성을 수정할 수 있습니다.
- HeatTransform.xslt -
- Product 섹션에 라인센스 문구와 배너 이미지를 추가합니다.
- 설치 폴더 설정과 설치 후 바탕 화면에 링크를 생성합니다.
WixUIExtension : 설치 경로 설정
WixUtilExtension : 설치 후 프로그램 실행
첫 번째 폴더의 파일들을 읽어 기본이 되는 WXS 파일을 생성합니다.
%HEAT% dir .\Setup -dr INSTALLFOLDER -cg <ComponentGroup> -g1 -gg -sf -srd -scom -sreg -out ".\<프로젝트 이름>.wxs"
1. dir : 설치할 파일들이 있는 폴더 이름을 지정합니다.2. -dr : WXS에서의 Directory 이름을 지정합니다.
3. -cg: WXS에서의 ComponentGroup 이름을 지정합니다.
4. -out: 생성할 WXS 파일 이름을 지정합니다.
이렇게 해서 WXS 파일을 생성하면 아쉽게도 32비트 용을 설치됩니다. 이것을 64비트로 바꾸려면 Component Attribute에 Win64='yes' 속성을 추가해 줘야 합니다.
예전에 수백 개의 Component에 일일이 속성을 추가해 주던 기억이 나네요^^;
이렇게 무식한 방법 대신 xslt 파일을 이용하면 속성을 수정할 수 있습니다.
%HEAT% dir .\Setup -dr INSTALLFOLDER -cg <ComponentGroup> -g1 -gg -sf -srd -scom -sreg -t HeatTransform.xslt -out ".\<프로젝트 이름>.wxs"
이렇게 xslt 파일을 이용하면 Component Attribute에 Win64='yes' 속성을 추가할 수 있습니다.- HeatTransform.xslt -
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:wix="http://schemas.microsoft.com/wix/2006/wi" xmlns="http://schemas.microsoft.com/wix/2006/wi" exclude-result-prefixes="wix"> <xsl:output method="xml" encoding="UTF-8" indent="yes" /> <xsl:template match="wix:Wix"> <xsl:copy> <!-- The following enters the directive for adding the config.wxi include file to the dynamically generated file --> <!--xsl:processing-instruction name="include">$(sys.CURRENTDIR)wix\config.wxi</xsl:processing-instruction--> </xsl:copy> </xsl:template> <!-- ### Adding the Win64-attribute to all Components --> <xsl:template match="wix:Component"> <xsl:copy> <xsl:apply-templates select="@*" /> <!-- Adding the Win64-attribute as we have a x64 application --> <xsl:attribute name="Win64">yes</xsl:attribute> <!-- Now take the rest of the inner tag --> <xsl:apply-templates select="node()" /> </xsl:copy> </xsl:template> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()" /> </xsl:copy> </xsl:template> </xsl:stylesheet>
두 번째. 이렇게 기본이 되는 WSX 파일을 생성하였으면 기본적인 설치 파일을 내용을 추가하도록 하겠습니다.- Product 섹션에 라인센스 문구와 배너 이미지를 추가합니다.
<WixVariable Id="WixUILicenseRtf" Value="license.rtf" /> <WixVariable Id="WixUIBannerBmp" Value="배너.png" />
배너 이미지는 493X58 픽셀 크기로 만들어야 합니다.- 설치 폴더 설정과 설치 후 바탕 화면에 링크를 생성합니다.
<Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="DesktopFolder" Name="Desktop"> <Component Id="DesktopShortcut" Guid="44D6BF99-8203-4DF8-A7F4-1FDC717A6B8C" Feature="ProductFeature"> <RegistryValue Root="HKCU" Key="Software\회사 이름\프로그램 이름" Name="installed" Type="integer" Value="1" KeyPath="yes"/> <Shortcut Id="DesktopShortcut" Directory="DesktopFolder" Name="프로그램 이름" Description="프로그램 설명" Target="[INSTALLFOLDER]프로그램 이름.exe" WorkingDirectory="INSTALLFOLDER" /> <RemoveFolder Id="DesktopFolder" On="uninstall"/> </Component> </Directory> <Directory Id="ProgramFilesFolder"> <Directory Id="COMPANYFOLDER" Name="회사 이름"> <Directory Id="INSTALLFOLDER" Name="프로그램 이름" /> </Directory> </Directory> </Directory>
- 문서와 실행 파일을 연결하고자 한다면 아래 내용을 추가합니다. 파일을 더블 클릭했을 때 프로그램이 실행됩니다.<Icon Id='ProductIcon' SourceFile='path\to\product.ico' /> <ProgId Id="프로그램 이름.Document" Description="프로그램 이름 file" Advertise="yes" Icon="ProductIcon"> <Extension Id="XXX"> <!--파일 확장자 기입(대소문자 구별하지 않음)--> <Verb Id="open" Command="Open" Argument=""%1"" /> <MIME Advertise="yes" ContentType="application/XXX" Default="yes" /> </Extension> </ProgId>
- 설치 완료 후 옵션을 체크하여 프로그램을 실행할 수 있도록 합니다.<UI> <Publish Dialog="ExitDialog" Control="Finish" Event="DoAction" Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed </Publish> </UI> <Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch 프로그램 이름" /> <Property Id="WixShellExecTarget" Value="[INSTALLFOLDER]프로그램 이름.exe" /> <CustomAction Id="LaunchApplication" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes" />
세 번째. 수정한 WXS 파일을 CANDLE 명령을 이용하여 빌드합니다.%CANDLE% ".\프로그램.wxs" -out .\Setup\
마지막으로 빌드 파일들을 묶어 하나의 설치 파일을 만듭니다. 설치 경로를 설정하거나 설치 완료 프로그램 실행을 위해 확장 모듈을 지정합니다.%LIGHT% -out ".\Setup\프로그램.msi" ".\Setup\프로그램.wixobj" -ext WixUIExtension -ext WixUtilExtension
YpianaeFpi-re Kim Lopez https://wakelet.com/wake/GIaDEkbwUu0elmlOHqIkr
답글삭제ovviemota
compjucons-i Jose Kadlecik click here
답글삭제inasruduf
Ocenpustirgi Lynda Rodriguez Adobe XD
답글삭제ReiBoot Pro
HDD Regenerator
portsorfover
sanmisprom-ke_Baltimore Barbara Jones Awesome
답글삭제Best
deretotask