Maak een Windows Installer "MSI" met behulp van WiX part2

Aanmaakdatum van pagina :

Eerst

De vorige keer hebben we de nodige dossiers voorbereid en het project opgezet. Bewerk deze keer "Product.wxs" en maak verschillende instellingen van het installatieprogramma.

Installatie-instellingen bewerken (Product.wxs)

De inhoud van het bestand Product.wxs wordt beschreven in XML-indeling. Er zijn een aantal parameters, maar eerst zullen we de minimale instellingen maken om ervoor te zorgen dat het installatieprogramma kan worden gemaakt. Als u het in meer detail wilt instellen, raadpleegt u een ander artikel of de officiële website.

Op het moment dat het project wordt gemaakt, ziet de code er als volgt uit:

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

Hier zijn enkele dingen die u moet wijzigen: Voeg tags en kenmerken toe die niet bestaan.

Wix/Product/@Id

Stel de GUID in die de toepassing identificeert.

Er zijn veel hulpprogramma's voor het genereren van GUID, maar het is snel om de hulpprogramma's te gebruiken die bij Visual Studio worden geleverd. Selecteer het menu "Extra" en "GUID maken".

image

Ontvang een 36-cijferige code, inclusief een koppelteken, en stel deze in op Wix /Product / @Id.

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

Wix/Product/@Name

Dit is de toepassingsnaam die in elk deel van het installatiescherm wordt weergegeven. Het kan ook de naam zijn die wordt weergegeven in de lijst Software.

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

image

image

Wix/Product/@Manufacturer

Voer de naam van de fabrikant in. Het wordt weergegeven als de auteur van het installatieprogramma of de uitgever van de programmalijst.

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

image

image

Wix / Product / UIRef / @Id

Voer een id in die aangeeft welk scherm moet worden weergegeven in de installatiewizard. Deze keer, omdat het de minimale configuratie is om alleen de licentie weer te geven en te installeren, wordt "WixUI_Minimal" opgegeven.

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

Ik denk dat de volgende site nuttig zal zijn bij wat voor soort aanwijzing kan worden gedaan.

De WixUI-dialoogvensterset gebruiken

Wix/Product/WixVariable/*

Hiermee geeft u het bestand op dat u in de gebruikersinterface van de wizard wilt gebruiken. De minimale configuratie gebruikt drie bestanden: De waarde van id is vast en de waarde is de bestandsnaam.

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

Pictogram installatietoepassing

Het wordt gebruikt voor toepassingspictogrammen die verschijnen in "Programma's toevoegen en verwijderen", enz.

Geef in de "SourceFile" van het element Icon het ico-bestand op als een relatief pad vanuit de projectmap.

"Property Id="ARPPRODUCTICON" is de associatiedefinitie van het pictogram.

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

Wix/Fragment (configuratie van bestandsmappen)

Hiermee stelt u de mapconfiguratie in die moet worden geïnstalleerd. Oorspronkelijk plaatst u ook bestanden, maar maakt u eerst alleen mappen.

De waarde van "Naam" ingesteld op "Id="ProgramMenuDir" is de naam van de map die in de snelkoppeling van het startmenu wordt geplaatst. Stel ook richtlijnen in.

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

Installatiebestanden toevoegen

U kunt het ook met de hand toevoegen aan een Product.wxs-bestand. Aangezien een GUID vereist is voor een bestand, is het moeilijk om met meer bestanden te werken. Dus om bestanden toe te voegen, gebruikt u WixEdit om ze toe te voegen.

Start WixEdit.

image

Open het bestand Product.wxs.

image

image

Selecteer Bestanden in het pictogram aan de linkerkant. Verwijder de mappen onder ProgramFilesFolder.

image

Klik met de rechtermuisknop op de map ProgramFilesFolder en selecteer Map importeren.

image

Selecteer de map waarin u de bestanden wilt installeren.

image

Er wordt een set bestanden aan de structuur toegevoegd.

image

Om te koppelen aan andere parameters, selecteert u de toegevoegde map en stelt u "Id" terug naar "INSTALLFOLDER".

image

Maak een snelkoppeling voor het menu Start. selecteer "Nieuw" en "Snelkoppeling" in het rechtsklikmenu van het exe-bestand.

image

Wanneer Snelkoppeling is toegevoegd, selecteert u deze en klikt u met de rechtermuisknop op de lege ruimte om de eigenschap toe te voegen.

image

Voeg de volgende parameters toe: (Wijzig de unieke naam om overeen te komen met het programma.)

Attribuutwaarde
Legitimatiebewijs LITTLESAVIORTRIAL. EXE_shortcut
Naam Little Saber Trial
Map ProgrammaMenuDir
WerkenDirectory INSTALLDIR
Pictogram LITTLESAVIOR. ICO
Iconindex 0
Adverteren ja

image

Selecteer vervolgens het tabblad "Functie", klik met de rechtermuisknop op "ProductFeature" en selecteer Componenten selecteren om toe te voegen.

image

Selecteer alles.

image

Toegevoegd.

image

Redden.

image

Product.wxs zou er ongeveer zo uit moeten zien:

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

Bevestiging van bouwen en uitvoeren

Maak de oplossingsconfiguratie 'Release' in Visual Studio.

image

Begin met bouwen vanuit Build Solution.

image

Wanneer het bouwen succesvol is, wordt een msi-bestand gegenereerd in de map "bin\Release".

image

Als u het probeert uit te voeren, wordt het installatieprogramma gestart.

image

Wanneer de installatie is voltooid, wordt een snelkoppeling gemaakt in het menu Start.

image

Het bestand wordt in de map Program Files (x86) geplaatst.

image

De applicatie verschijnt ook in "Programma's en functies".

image

Voer de toepassing uit en controleer of deze goed werkt.

image

Samenvatting

Hier hebben we de stappen beschreven voor het maken van een MSI-installatieprogramma met Visual Studio en WiX. Ik wil graag de gedetailleerde instellingen in een apart artikel uitleggen.