Skapa en Windows Installer "MSI" med WiX part2

Datum för skapande av sida :

Först

Förra gången förberedde vi de nödvändiga filerna och konfigurerade projektet. Den här gången redigerar du "Product.wxs" och gör olika inställningar för installationsprogrammet.

Redigera installationsinställningar (Product.wxs)

Innehållet i filen Product.wxs beskrivs i XML-format. Det finns ett antal parametrar, men först kommer vi att göra minimiinställningarna för att se till att installationsprogrammet kan skapas. Om du vill ställa in det mer detaljerat, se en annan artikel eller den officiella webbplatsen.

När projektet skapas ser koden ut så här:

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

Här är några saker du behöver ändra: Lägg till taggar och attribut som inte finns.

Wix/Produkt/@Id

Ange guid som identifierar programmet.

Det finns många verktyg för att generera GUID, men det går snabbt att använda verktygen som med kommer med Visual Studio. Välj menyn "Verktyg" och "Skapa GUID".

image

Skaffa en 36-siffrig kod, inklusive ett bindestreck, och ställ in den på Wix/Product/@Id.

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

Wix/Produkt/@Name

Det här är programnamnet som visas på varje del av installationsskärmen. Det kan också vara namnet som visas i listan Lägg till och ta bort program.

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

image

image

Wix/Produkt/@Manufacturer

Ange tillverkarens namn. Den visas som installationsförfattare eller utgivare av programlistan.

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

image

image

Wix/Product/UIRef/@Id

Ange ett ID som identifierar vilken skärm som ska visas i installationsguiden. Den här gången, eftersom det är den minsta konfigurationen för att visa och installera endast licensen, WixUI_Minimal "det" anges.

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

Jag tror att följande webbplats kommer att vara till hjälp i vilken typ av beteckning som kan göras.

Använda dialogrutan WixUI

Wix/Produkt/WixVariable/*

Anger vilken fil som ska användas i guidegränssnittet. Den minsta konfigurationen använder tre filer: Värdet för id är fast och värdet är filnamnet.

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

Ikon för installationsprogram

Det används för programikoner som visas i "Lägg till och ta bort program", etc.

I "SourceFile" för ikonelementet anger du ico-filen som en relativ sökväg från projektmappen.

"Egenskap Id="ARPPRODUCTICON" är associationsdefinitionen för ikonen.

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

Wix/Fragment (konfiguration av filmapp)

Ställer in mappkonfigurationen som ska installeras. Ursprungligen kommer du också att placera filer, men skapa bara mappar först.

Värdet för "Namn" som är inställt på "Id="ProgramMenuDir" är namnet på mappen som placeras i genvägen till Start-menyn. Ställ in guids också.

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

Lägga till installationsfiler

Du kan också lägga till den i en Product.wxs-fil för hand. Eftersom ett GUID krävs för en fil är det svårt att arbeta med fler filer. Så för att lägga till filer, använd WixEdit för att lägga till dem.

Starta WixEdit.

image

Öppna filen Product.wxs.

image

image

Välj Filer från ikonen till vänster. Ta bort mapparna under ProgramFilesFolder.

image

Högerklicka på mappen ProgramFilesFolder och välj Importera mapp.

image

Markera mappen där du vill installera filerna.

image

En uppsättning filer läggs till i trädet.

image

För att associera med andra parametrar väljer du den tillagda mappen och ställer in "ID" tillbaka till "INSTALLFOLDER".

image

Skapa en genväg för Start-menyn. välj "Ny" och "Genväg" på exe-filens högerklicksmeny.

image

När Genväg läggs till markerar du den och högerklickar på den tomma för att lägga till egenskapen.

image

Lägg till följande parametrar: (Ändra det unika namnet så att det matchar programmet.)

Attributvärde
Id LITTLESAVIORTRIAL. EXE_shortcut
Namn Little Saber-rättegången
Katalog ProgramMenuDir
Arbetskatalog INSTALLERADIR
Ikon LILLA FRÄLSARE. ICO (ICO)
IconIndex 0
Annonsera Ja

image

Välj sedan fliken "Funktion", högerklicka på "ProductFeature" och välj Välj komponenter att lägga till.

image

Markera alla.

image

Tillade.

image

Spara.

image

Product.wxs bör se ut ungefär så här:

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

Skapa och kör bekräftelse

Gör lösningskonfigurationen "Release" i Visual Studio.

image

Börja bygga från Build Solution.

image

När byggnaden lyckas genereras en msi-fil i mappen "bin\Release".

image

Om du försöker köra den startar installationsprogrammet.

image

När installationen är klar skapas en genväg på Start-menyn.

image

Filen placeras i mappen Programfiler (x86).

image

Programmet visas också i "Program och funktioner".

image

Kör programmet och se till att det fungerar korrekt.

image

Sammanfattning

Här har vi beskrivit stegen för att skapa en MSI-installation med Visual Studio och WiX. Jag skulle vilja förklara de detaljerade inställningarna i en separat artikel.