Skapa en Windows Installer "MSI" med WiX part2
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".
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="リトルセイバー 体験版" />
Wix/Produkt/@Manufacturer
Ange tillverkarens namn. Den visas som installationsförfattare eller utgivare av programlistan.
<Wix>
<Product Manufacturer="ソーサリーフォース">
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.
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.
Öppna filen Product.wxs.
Välj Filer från ikonen till vänster. Ta bort mapparna under ProgramFilesFolder.
Högerklicka på mappen ProgramFilesFolder och välj Importera mapp.
Markera mappen där du vill installera filerna.
En uppsättning filer läggs till i trädet.
För att associera med andra parametrar väljer du den tillagda mappen och ställer in "ID" tillbaka till "INSTALLFOLDER".
Skapa en genväg för Start-menyn. välj "Ny" och "Genväg" på exe-filens högerklicksmeny.
När Genväg läggs till markerar du den och högerklickar på den tomma för att lägga till egenskapen.
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 |
Välj sedan fliken "Funktion", högerklicka på "ProductFeature" och välj Välj komponenter att lägga till.
Markera alla.
Tillade.
Spara.
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.
Börja bygga från Build Solution.
När byggnaden lyckas genereras en msi-fil i mappen "bin\Release".
Om du försöker köra den startar installationsprogrammet.
När installationen är klar skapas en genväg på Start-menyn.
Filen placeras i mappen Programfiler (x86).
Programmet visas också i "Program och funktioner".
Kör programmet och se till att det fungerar korrekt.
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.