Crea un instal·lador del Windows "MSI" utilitzant wiX part2

Data de creació de la pàgina :

Al principi

L'última vegada, vam preparar els arxius necessaris i vam configurar el projecte. Aquesta vegada, editeu "Product.wxs" i feu diverses configuracions de l'instal·lador.

Edita la configuració d'instal·lació (Product.wxs)

El contingut del fitxer Product.wxs es descriu en format XML. Hi ha una sèrie de paràmetres, però primer farem la configuració mínima per assegurar-nos que es pot crear l'instal·lador. Si voleu configurar-lo amb més detall, consulteu un altre article o al lloc web oficial.

En el moment de la creació del projecte, el codi es veu així:

<?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>

Aquí hi ha algunes coses que heu de canviar: Afegiu etiquetes i atributs que no existeixen.

Wix/Producte/@Id

Definiu el GUID que identifiqui l'aplicació.

Hi ha moltes eines per generar GUID, però és ràpid utilitzar les eines que vénen amb Visual Studio. Seleccioneu el menú "Eines" i "Crea GUID".

image

Obteniu un codi de 36 dígits, incloent un guió, i establiu-lo a Wix/Product/@Id.

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

Wix/Producte/@Name

Aquest és el nom de l'aplicació que es mostra a cada part de la pantalla de l'instal·lador. També pot ser el nom que apareix a la llista Afegeix i suprimeix programes.

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

image

image

Wix/Producte/@Manufacturer

Introduïu el nom del fabricant. Apareix com a autor de l'instal·lador o com a editor de la llista de programes.

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

image

image

Wix/Producte/UIRef/@Id

Introduïu un ID que identifiqui quina pantalla voleu visualitzar a l'auxiliar d'instal·lació. Aquesta vegada, atès que és la configuració mínima per visualitzar i instal·lar només la llicència, s'especifica "WixUI_Minimal".

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

Crec que el següent lloc serà útil en quin tipus de designació es pot fer.

Ús del conjunt de diàlegs WixUI

Wix/Producte/WixVariable/*

Especifica el fitxer que s'utilitzarà a la interfície d'usuari de l'auxiliar. La configuració mínima utilitza tres fitxers: El valor de l'id és fix i el valor és el nom del fitxer.

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

Icona de l'aplicació d'instal·lació

S'utilitza per a icones d'aplicació que apareixen a "Afegir i eliminar programes", etc.

Al "Fitxer d'origen" de l'element Icon, especifiqueu el fitxer ico com a camí relatiu des de la carpeta del projecte.

"Property Id="ARPPRODUCTICON" és la definició d'associació de la icona.

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

Wix/Fragment (configuració de la carpeta de fitxers)

Estableix la configuració de la carpeta que voleu instal·lar. Originalment, també col·locareu fitxers, però primer creareu carpetes.

El valor de "Nom" definit com a "Id="ProgramMenuDir" és el nom de la carpeta col·locada a la drecera del menú d'inici. També s'estableixen els guids.

<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>

Afegeix fitxers d'instal·lació

També podeu afegir-lo a un fitxer Product.wxs a mà. Atès que es necessita un GUID per a un fitxer, és difícil treballar amb més fitxers. Per tant, per afegir fitxers, utilitzeu WixEdit per afegir-los.

Inicia wixEdit.

image

Obriu el fitxer Product.wxs.

image

image

Seleccioneu Fitxers de la icona de l'esquerra. Suprimeix les carpetes que hi ha a sota de ProgramFilesFolder.

image

Feu clic amb el botó dret del ratolí a la carpeta ProgramFilesFolder i seleccioneu Importa la carpeta.

image

Seleccioneu la carpeta on voleu instal·lar els fitxers.

image

S'afegeix un conjunt de fitxers a l' arbre.

image

Per associar-se a altres paràmetres, seleccioneu la carpeta afegida i torneu a definir "identificador" a "INSTALLFOLDER".

image

Crea una drecera per al menú Inicia. seleccioneu "Nou" i "Drecera" al menú del clic dret del fitxer exe.

image

Quan s'afegeixi la drecera, seleccioneu-la i feu clic amb el botó dret del ratolí al blanc per afegir la propietat.

image

Afegeix els paràmetres següents: (Canvieu el nom únic perquè coincideixi amb el programa.)

Valor de l'atribut
Id LITTLESAVIORTRIAL. EXE_shortcut
Nom Petit judici de saber
Directori ProgramaMenuDir
Direcció de treball INSTALLDIR
Icona LITTLESAVIOR. ICO
IconIndex 0
Anunciar

image

A continuació, seleccioneu la pestanya "Característica", feu clic amb el botó dret del ratolí a "ProductFeature" i seleccioneu Selecciona components a afegir.

image

Selecciona-ho tot.

image

Afegit.

image

Salvar.

image

Product.wxs ha de tenir un aspecte així:

<?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>

Confirmació de construcció i execució

Feu que la configuració de la solució sigui "Release" al Visual Studio.

image

Comenceu a construir des de la solució de construcció.

image

Quan l'edifici té èxit, es genera un fitxer msi a la carpeta "bin\Release".

image

Si proveu d'executar-lo, s'iniciarà l'instal·lador.

image

Quan s'hagi completat la instal·lació, es crearà una drecera al menú Inicia.

image

El fitxer es col·loca a la carpeta Fitxers de programa (x86).

image

L'aplicació també apareix a "Programes i funcions".

image

Executeu l'aplicació i assegureu-vos que funciona correctament.

image

Resum

Aquí hem descrit els passos per crear un instal·lador MSI utilitzant Visual Studio i WiX. M'agradaria explicar la configuració detallada en un article a part.