Crea un instal·lador del Windows "MSI" utilitzant wiX part2
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".
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="リトルセイバー 体験版" />
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="ソーサリーフォース">
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.
Obriu el fitxer Product.wxs.
Seleccioneu Fitxers de la icona de l'esquerra. Suprimeix les carpetes que hi ha a sota de ProgramFilesFolder.
Feu clic amb el botó dret del ratolí a la carpeta ProgramFilesFolder i seleccioneu Importa la carpeta.
Seleccioneu la carpeta on voleu instal·lar els fitxers.
S'afegeix un conjunt de fitxers a l' arbre.
Per associar-se a altres paràmetres, seleccioneu la carpeta afegida i torneu a definir "identificador" a "INSTALLFOLDER".
Crea una drecera per al menú Inicia. seleccioneu "Nou" i "Drecera" al menú del clic dret del fitxer exe.
Quan s'afegeixi la drecera, seleccioneu-la i feu clic amb el botó dret del ratolí al blanc per afegir la propietat.
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 | sí |
A continuació, seleccioneu la pestanya "Característica", feu clic amb el botó dret del ratolí a "ProductFeature" i seleccioneu Selecciona components a afegir.
Selecciona-ho tot.
Afegit.
Salvar.
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.
Comenceu a construir des de la solució de construcció.
Quan l'edifici té èxit, es genera un fitxer msi a la carpeta "bin\Release".
Si proveu d'executar-lo, s'iniciarà l'instal·lador.
Quan s'hagi completat la instal·lació, es crearà una drecera al menú Inicia.
El fitxer es col·loca a la carpeta Fitxers de programa (x86).
L'aplicació també apareix a "Programes i funcions".
Executeu l'aplicació i assegureu-vos que funciona correctament.
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.