Crear un "MSI" de Windows Installer usando WiX part2

Fecha de creación de la página :

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

image

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="リトルセイバー 体験版" />

image

image

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="ソーサリーフォース">

image

image

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.

image

Abra el archivo Product.wxs.

image

image

Seleccione Archivos en el icono de la izquierda. Elimine las carpetas debajo de ProgramFilesFolder.

image

Haga clic con el botón derecho en la carpeta ProgramFilesFolder y seleccione Importar carpeta.

image

Seleccione la carpeta donde desea instalar los archivos.

image

Se agrega un conjunto de archivos al árbol.

image

Para asociarse con otros parámetros, seleccione la carpeta agregada y vuelva a establecer "Id" en "INSTALLFOLDER".

image

Cree un acceso directo para el menú Inicio. seleccione "Nuevo" y "Acceso directo" en el menú contextual del archivo exe.

image

Cuando se agregue acceso directo, selecciónelo y haga clic con el botón secundario en el espacio en blanco para agregar la propiedad.

image

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

image

Luego seleccione la pestaña "Característica", haga clic derecho en "Característica del producto" y seleccione Seleccionar componentes para agregar.

image

Seleccione todo.

image

Añadido.

image

Salvar.

image

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.

image

Comience a crear desde Build Solution.

image

Cuando la construcción se realiza correctamente, se genera un archivo msi en la carpeta "bin\Release".

image

Si intenta ejecutarlo, se iniciará el instalador.

image

Cuando se complete la instalación, se creará un acceso directo en el menú Inicio.

image

El archivo se coloca en la carpeta Archivos de programa (x86).

image

La aplicación también aparece en "Programas y Funciones".

image

Ejecute la aplicación y asegúrese de que funciona correctamente.

image

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.