WiX part2를 사용하여 Windows 설치 프로그램 "MSI" 만들기

페이지 생성 날짜 :

처음에

마지막으로 필요한 파일을 준비하고 프로젝트를 설정했습니다. 이번에는 "Product.wxs"를 편집하고 설치 관리자의 다양한 설정을 만듭니다.

설치 설정 편집(Product.wxs)

Product.wxs 파일의 내용은 XML 형식으로 설명되어 있습니다. 매개 변수의 수가 있지만, 먼저 우리는 설치 프로그램을 만들 수 있는지 확인하기 위해 최소 설정을 만들 것입니다. 자세한 내용은 다른 기사 나 공식 웹 사이트를 참조하십시오.

프로젝트 생성 시 코드는 다음과 같습니다.

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Product Id="*" Name="SetupLittleSaviorTrial_x86" Language="1033" Version="1.0.0.0" Manufacturer="" UpgradeCode="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />

    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
    <MediaTemplate />

    <Feature Id="ProductFeature" Title="SetupLittleSaviorTrial_x86" Level="1">
      <ComponentGroupRef Id="ProductComponents" />
    </Feature>
  </Product>

  <Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLFOLDER" Name="SetupLittleSaviorTrial_x86" />
      </Directory>
    </Directory>
  </Fragment>

  <Fragment>
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
      <!-- TODO: Remove the comments around this Component element and the ComponentRef below in order to add resources to this installer. -->
      <!-- <Component Id="ProductComponent"> -->
      <!-- TODO: Insert files, registry keys, and other resources here. -->
      <!-- </Component> -->
    </ComponentGroup>
  </Fragment>
</Wix>

다음은 변경해야 하는 몇 가지 사항입니다. 존재하지 않는 태그와 특성을 추가합니다.

Wix/제품/@Id

응용 프로그램을 식별하는 GUID를 설정합니다.

GUID를 생성하는 도구는 많지만 Visual Studio와 함께 제공되는 도구를 빠르게 사용할 수 있습니다. 메뉴 "도구"와 "GUID 만들기"를 선택합니다.

image

하이픈을 포함한 36자리 코드를 얻고 Wix/제품/@Id 설정합니다.

<Wix>
  <Product Id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" />

Wix/제품/@Name

설치 프로그램 화면의 각 부분에 표시되는 응용 프로그램 이름입니다. 프로그램 추가 및 제거 목록에 표시되는 이름일 수도 있습니다.

<Wix>
  <Product Name="リトルセイバー 体験版" />

image

image

Wix/제품/@Manufacturer

제조업체의 이름을 입력합니다. 설치 작성자 또는 프로그램 목록의 게시자로 나타납니다.

<Wix>
  <Product Manufacturer="ソーサリーフォース">

image

image

Wix/제품/UIRef/@Id

설치 마법사에 표시할 화면을 식별하는 ID를 입력합니다. 이번에는 라이센스만 표시하고 설치하는 최소 구성이므로 "WixUI_Minimal"이 지정됩니다.

<Wix>
  <Product>
    <UIRef Id="WixUI_Minimal" />

나는 다음 사이트가 어떤 종류의 지정을 할 수 있는지에 도움이 될 것이라고 생각합니다.

WixUI 대화 상자 세트 사용

Wix/제품/Wix변수/*

마법사 UI에서 사용할 파일을 지정합니다. 최소 구성은 세 개의 파일을 사용합니다. ID 값이 고정되고 값은 파일 이름입니다.

<Wix>
  <Product>
    <WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
    <WixVariable Id="WixUIDialogBmp" Value="dialog.bmp" />
    <WixVariable Id="WixUIBannerBmp" Value="banner.bmp" />

설치 응용 프로그램 아이콘

"프로그램 추가 및 제거"등에 표시되는 응용 프로그램 아이콘에 사용됩니다.

아이콘 요소의 "SourceFile"에서 ico 파일을 프로젝트 폴더의 상대 경로로 지정합니다.

"속성 Id="ARPPRODUCTICON"아이콘의 연결 정의입니다.

<Wix>
  <Product>
    <Icon Id="LITTLESAVIOR.ICO" SourceFile="LittleSaviorTrial\LittleSavior.ico" />
    <Property Id="ARPPRODUCTICON" Value="LITTLESAVIOR.ICO" />

Wix/조각(파일 폴더 구성)

설치할 폴더 구성을 설정합니다. 원래는 파일을 배치하지만 먼저 폴더만 만듭니다.

"Id="ProgramMenuDir"로 설정된 "이름"의 값은 시작 메뉴 바로 가기에 배치된 폴더의 이름입니다. 가이드도 설정합니다.

<Wix>
  <Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLFOLDER" Name="SetupLittleSaviorTrial_x86" />
      </Directory>
      <Directory Id="ProgramMenuFolder">
        <Directory Id="ProgramMenuDir" Name="リトルセイバー 体験版">
          <Component Id="ProgramMenuDir" Guid="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
            <RemoveFolder Id="ProgramMenuDir" On="uninstall" />
            <RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes" />
          </Component>
        </Directory>
      </Directory>
    </Directory>
  </Fragment>

설치 파일 추가

Product.wxs 파일에 직접 추가할 수도 있습니다. 파일에 GUID가 필요하므로 더 많은 파일로 작업하기가 어렵습니다. 따라서 파일을 추가하려면 WixEdit을 사용하여 파일을 추가합니다.

WixEdit을 시작합니다.

image

Product.wxs 파일을 엽니다.

image

image

왼쪽아이콘에서 파일을 선택합니다. 프로그램파일폴더 아래의 폴더를 삭제합니다.

image

ProgramFiles폴더 폴더를 마우스 오른쪽 단추로 클릭하고 가져오기 폴더를 선택합니다.

image

파일을 설치하려는 폴더를 선택합니다.

image

파일 집합이 트리에 추가됩니다.

image

다른 매개 변수와 연결하려면 추가된 폴더를 선택하고 "ID"를 다시 "INSTALLFOLDER"로 설정합니다.

image

시작 메뉴에 대한 바로 가기를 만듭니다. exe 파일의 마우스 오른쪽 클릭 메뉴에서 "새" 및 "바로 가기"를 선택합니다.

image

바로 가기가 추가되면 바로 가기를 선택하고 빈 공간을 마우스 오른쪽 단추로 클릭하여 속성을 추가합니다.

image

다음 매개 변수추가: (프로그램에 맞게 고유 이름을 변경합니다.)

특성
아이디 리틀구세이더심. EXE_shortcut
이름 리틀 세이버 트라이얼
디렉토리 프로그램 메뉴 디어
작업 디렉토리 설치DIR
아이콘 리틀구주. ICO
아이콘인덱스 0
광고

image

그런 다음 "기능" 탭을 선택하고 "ProductFeature"를 마우스 오른쪽 단추로 클릭하고 추가할 구성 요소 선택을 선택합니다.

image

모두 선택합니다.

image

추가.

image

구해내다.

image

Product.wxs는 다음과 같이 보일 것입니다.

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Product Id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" Name="リトルセイバー 体験版" Language="1033" Version="1.0.0.0" Manufacturer="ソーサリーフォース" UpgradeCode="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
    <MediaTemplate />
    <UIRef Id="WixUI_Minimal" />
    <WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
    <WixVariable Id="WixUIDialogBmp" Value="dialog.bmp" />
    <WixVariable Id="WixUIBannerBmp" Value="banner.bmp" />
    <Icon Id="LITTLESAVIOR.ICO" SourceFile="LittleSaviorTrial\LittleSavior.ico" />
    <Property Id="ARPPRODUCTICON" Value="LITTLESAVIOR.ICO" />
    <Feature Id="ProductFeature" Title="SetupLittleSaviorTrial_x86" Level="1">
      <ComponentGroupRef Id="ProductComponents" />
      <ComponentRef Id="LITTLESAVIOR.ICO" />
      <ComponentRef Id="LITTLESAVIORTRIAL.EXE" />
      <ComponentRef Id="LITTLESAVIORTRIAL.EXE.CONFIG" />
      <ComponentRef Id="ProgramMenuDir" />
    </Feature>
    <UI />
  </Product>
  <Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLFOLDER" Name="LittleSaviorTrial">
          <Component Id="LITTLESAVIOR.ICO" DiskId="1" Guid="0B4DD82C-C6EF-4299-8EAB-4F9BB35FD952">
            <File Id="LITTLESAVIOR.ICO" Name="LittleSavior.ico" Source="LittleSaviorTrial\LittleSavior.ico" />
          </Component>
          <Component Id="LITTLESAVIORTRIAL.EXE" DiskId="1" Guid="8D805936-A25E-4DA6-9A0A-A5BDB2AD768D">
            <File Id="LITTLESAVIORTRIAL.EXE" Name="LittleSaviorTrial.exe" Source="LittleSaviorTrial\LittleSaviorTrial.exe" KeyPath="yes">
              <Shortcut Id="LITTLESAVIORTRIAL.EXE_shortcut" Name="リトルセイバー 体験版" Directory="ProgramMenuDir" WorkingDirectory="INSTALLDIR" Icon="LITTLESAVIOR.ICO" IconIndex="0" Advertise="yes" />
            </File>
          </Component>
          <Component Id="LITTLESAVIORTRIAL.EXE.CONFIG" DiskId="1" Guid="790C427A-A72C-4444-ACD6-ECF32AA788AD">
            <File Id="LITTLESAVIORTRIAL.EXE.CONFIG" Name="LittleSaviorTrial.exe.config" Source="LittleSaviorTrial\LittleSaviorTrial.exe.config" />
          </Component>
        </Directory>
      </Directory>
      <Directory Id="ProgramMenuFolder">
        <Directory Id="ProgramMenuDir" Name="リトルセイバー 体験版">
          <Component Id="ProgramMenuDir" Guid="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX">
            <RemoveFolder Id="ProgramMenuDir" On="uninstall" />
            <RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes" />
          </Component>
        </Directory>
      </Directory>
    </Directory>
  </Fragment>
  <Fragment>
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
    </ComponentGroup>
  </Fragment>
</Wix>

확인 을 빌드 및 실행

비주얼 스튜디오에서 솔루션 구성을 "릴리스"로 만듭니다.

image

빌드 솔루션에서 빌드를 시작합니다.

image

건물이 성공하면 "bin\Release" 폴더에 msi 파일이 생성됩니다.

image

실행하려고 하면 설치 프로그램이 시작됩니다.

image

설치가 완료되면 시작 메뉴에서 바로 가기를 생성합니다.

image

파일은 프로그램 파일(x86) 폴더에 배치됩니다.

image

응용 프로그램은 "프로그램 및 기능"에도 나타납니다.

image

응용 프로그램을 실행하고 제대로 작동하는지 확인합니다.

image

요약

여기에서는 Visual Studio 및 WiX를 사용하여 MSI 설치 프로그램을 만드는 단계를 설명했습니다. 자세한 설정을 별도의 문서에서 설명하고 싶습니다.