Maak een Windows Installer "MSI" met behulp van WiX part2
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".
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="リトルセイバー 体験版" />
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="ソーサリーフォース">
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.
Open het bestand Product.wxs.
Selecteer Bestanden in het pictogram aan de linkerkant. Verwijder de mappen onder ProgramFilesFolder.
Klik met de rechtermuisknop op de map ProgramFilesFolder en selecteer Map importeren.
Selecteer de map waarin u de bestanden wilt installeren.
Er wordt een set bestanden aan de structuur toegevoegd.
Om te koppelen aan andere parameters, selecteert u de toegevoegde map en stelt u "Id" terug naar "INSTALLFOLDER".
Maak een snelkoppeling voor het menu Start. selecteer "Nieuw" en "Snelkoppeling" in het rechtsklikmenu van het exe-bestand.
Wanneer Snelkoppeling is toegevoegd, selecteert u deze en klikt u met de rechtermuisknop op de lege ruimte om de eigenschap toe te voegen.
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 |
Selecteer vervolgens het tabblad "Functie", klik met de rechtermuisknop op "ProductFeature" en selecteer Componenten selecteren om toe te voegen.
Selecteer alles.
Toegevoegd.
Redden.
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.
Begin met bouwen vanuit Build Solution.
Wanneer het bouwen succesvol is, wordt een msi-bestand gegenereerd in de map "bin\Release".
Als u het probeert uit te voeren, wordt het installatieprogramma gestart.
Wanneer de installatie is voltooid, wordt een snelkoppeling gemaakt in het menu Start.
Het bestand wordt in de map Program Files (x86) geplaatst.
De applicatie verschijnt ook in "Programma's en functies".
Voer de toepassing uit en controleer of deze goed werkt.
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.