Crear un "MSI" de Windows Installer usando WiX part2
Al principio
La última vez, preparamos los archivos necesarios y configuramos el proyecto. Esta vez, edite "Product.wxs" y realice varias configuraciones del instalador.
Editar la configuración de instalación (Product.wxs)
El contenido del archivo Product.wxs se describe en formato XML. Hay una serie de parámetros, pero primero haremos la configuración mínima para asegurarnos de que se pueda crear el instalador. Si desea configurarlo con más detalle, consulte otro artículo o el sitio web oficial.
En el momento de la creación del proyecto, el código se ve así:
<?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í hay algunas cosas que debe cambiar: Agregue etiquetas y atributos que no existen.
Wix/Producto/@Id
Establezca el GUID que identifica la aplicación.
Hay muchas herramientas para generar GUID, pero es rápido usar las herramientas que vienen con Visual Studio. Seleccione el menú "Herramientas" y "Crear GUID".
Obtén un código de 36 dígitos, incluido un guión, y configáralo en Wix/Product/@Id.
<Wix>
<Product Id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" />
Wix/Producto/@Name
Este es el nombre de la aplicación que se muestra en cada parte de la pantalla del instalador. También puede ser el nombre que aparece en la lista Agregar y quitar programas.
<Wix>
<Product Name="リトルセイバー 体験版" />
Wix/Producto/@Manufacturer
Introduzca el nombre del fabricante. Aparece como el autor del instalador o el editor de la lista de programas.
<Wix>
<Product Manufacturer="ソーサリーフォース">
Wix/Producto/UIRef/@Id
Introduzca un ID que identifique qué pantalla mostrar en el asistente de instalación. Esta vez, dado que es la configuración mínima para mostrar e instalar solo la licencia, se especifica "WixUI_Minimal".
<Wix>
<Product>
<UIRef Id="WixUI_Minimal" />
Creo que el siguiente sitio será útil en qué tipo de designación se puede hacer.
Uso del conjunto de diálogo WixUI
Wix/Producto/WixVariable/*
Especifica el archivo que se usará en la interfaz de usuario del asistente. La configuración mínima utiliza tres archivos: El valor de id es fijo y el valor es el nombre de archivo.
<Wix>
<Product>
<WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
<WixVariable Id="WixUIDialogBmp" Value="dialog.bmp" />
<WixVariable Id="WixUIBannerBmp" Value="banner.bmp" />
Icono de la aplicación de instalación
Se utiliza para los iconos de aplicaciones que aparecen en "Agregar y quitar programas", etc.
En el "SourceFile" del elemento Icon, especifique el archivo ico como ruta relativa desde la carpeta del proyecto.
"Property Id="ARPPRODUCTICON" es la definición de asociación del icono.
<Wix>
<Product>
<Icon Id="LITTLESAVIOR.ICO" SourceFile="LittleSaviorTrial\LittleSavior.ico" />
<Property Id="ARPPRODUCTICON" Value="LITTLESAVIOR.ICO" />
Wix/Fragment (configuración de carpetas de archivos)
Establece la configuración de la carpeta que se instalará. Originalmente, también colocará archivos, pero primero creará solo carpetas.
El valor de "Name" establecido en "Id="ProgramMenuDir" es el nombre de la carpeta colocada en el acceso directo del menú de inicio. Establezca guids también.
<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>
Agregar archivos de instalación
También puede agregarlo a un archivo Product.wxs a mano. Dado que se requiere un GUID para un archivo, es difícil trabajar con más archivos. Por lo tanto, para agregar archivos, use WixEdit para agregarlos.
Inicie WixEdit.
Abra el archivo Product.wxs.
Seleccione Archivos en el icono de la izquierda. Elimine las carpetas debajo de ProgramFilesFolder.
Haga clic con el botón derecho en la carpeta ProgramFilesFolder y seleccione Importar carpeta.
Seleccione la carpeta donde desea instalar los archivos.
Se agrega un conjunto de archivos al árbol.
Para asociarse con otros parámetros, seleccione la carpeta agregada y vuelva a establecer "Id" en "INSTALLFOLDER".
Cree un acceso directo para el menú Inicio. seleccione "Nuevo" y "Acceso directo" en el menú contextual del archivo exe.
Cuando se agregue acceso directo, selecciónelo y haga clic con el botón secundario en el espacio en blanco para agregar la propiedad.
Agregue los siguientes parámetros: (Cambie el nombre único para que coincida con el programa).
Valor del atributo | |
---|---|
Identificación | LITTLESAVIORTRIAL. EXE_shortcut |
Nombre | Prueba de Little Saber |
Directorio | ProgramMenuDir |
Directorio de trabajo | INSTALLDIR |
Icono | PEQUEÑOAVIOR. ICO |
IconIndex | 0 |
Anunciar | Sí |
Luego seleccione la pestaña "Característica", haga clic derecho en "Característica del producto" y seleccione Seleccionar componentes para agregar.
Seleccione todo.
Añadido.
Salvar.
Product.wxs debería tener un aspecto similar al siguiente:
<?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ón de compilación y ejecución
Realice la configuración de la solución "Release" en Visual Studio.
Comience a crear desde Build Solution.
Cuando la construcción se realiza correctamente, se genera un archivo msi en la carpeta "bin\Release".
Si intenta ejecutarlo, se iniciará el instalador.
Cuando se complete la instalación, se creará un acceso directo en el menú Inicio.
El archivo se coloca en la carpeta Archivos de programa (x86).
La aplicación también aparece en "Programas y Funciones".
Ejecute la aplicación y asegúrese de que funciona correctamente.
Resumen
Aquí hemos descrito los pasos para crear un instalador MSI utilizando Visual Studio y WiX. Me gustaría explicar la configuración detallada en un artículo separado.