El conjunto de herramientas de WiX permite a los desarrolladores crear instaladores para Windows Installer, el motor de instalación de Windows. Es de código abierto y parte de la Fundación .NET .
El núcleo de WiX es un conjunto de herramientas de compilación que crean paquetes de Windows Installer usando los mismos conceptos de compilación que el resto de su producto: el código fuente se compila y luego se vincula para crear ejecutables; en este caso, los paquetes de instalación .exe, los paquetes de instalación .msi, los módulos de fusión .msm y los parches .msp. Las herramientas de construcción de línea de comandos de WiX funcionan con cualquier sistema de construcción automatizado. Además, MSBuild es compatible desde la línea de comandos, Visual Studio y Team Build.
WiX incluye varias extensiones que ofrecen funcionalidad más allá de la de Windows Installer. Por ejemplo, WiX puede instalar sitios web de IIS, crear bases de datos de SQL Server y registrar excepciones en el Firewall de Windows, entre otros.
Con Burn, el bootstrapper de WiX, puede crear paquetes de configuración que instalen requisitos previos como .NET Framework y otros tiempos de ejecución junto con su propio producto. Burn le permite descargar paquetes o combinarlos en un solo archivo .exe descargable.
El WiX SDK incluye bibliotecas administradas y nativas que facilitan la escritura de código que funciona con Windows Installer, incluidas acciones personalizadas en C # y C ++.
El código fuente de WiX está escrito en formato XML con una extensión de archivo .wxs. Las herramientas de WiX siguen el modelo tradicional de compilación y enlace utilizado para crear ejecutables a partir del código fuente.
En el momento de la compilación, los archivos fuente de WiX se validan con respecto al esquema central de WiX y luego los procesa un preprocesador, compilador y enlazador para crear el resultado final. Hay un conjunto de herramientas WiX que se pueden usar para producir diferentes tipos de salida.
WiX soporta tanto .NET 3.5 y 4.0 y posteriores. El soporte MSBuild de WiX requiere .NET 3.5, que no se instala de forma predeterminada en Windows 8 y Windows Server 2012 y posteriores.
En la próxima versión de WiX (v3.11), se requerirá .NET 4.0; la construcción con .NET 3.5 ya no será compatible.
Versión | Fechas de lanzamiento |
---|---|
3.11 | 2017-05-05 |
3.10.3 | 2016-07-04 |
3.9 R2 | 2015-01-21 |
3.8 | 2013-11-28 |
3.7 | 2012-12-24 |
3.6 | 2012-09-03 |
3.5 | 2011-01-19 |
3.0 | 2009-06-19 |
2.0 | 2007-10-05 |
Descargue e instale el conjunto de herramientas de WiX desde wixtoolset.org .
El instalador de WiX Toolset proporciona también la integración con Visual Studio , después de la instalación, debería poder crear proyectos específicos de WiX.
Se necesitan derechos de administrador.
Algunas versiones de WiX son compatibles solo con una versión particular de Visual Studio:
El instalador está construido con WiX y presenta una ventana inusual:
Está compuesto por 6 partes:
WiX Toolset: muestra la versión instalada por el instalador e inicia el sitio web de Wix Toolset con un clic
Licencia: mostrar la licencia
Instalar: iniciar la instalación
Hasta la fecha: verifique si hay una nueva versión disponible
Noticias: lanza las novedades de WiX.
Salir: cerrar el instalador
En este ejemplo, se supone que ya existe una solución con una aplicación llamada MyApp
.
Product.wxs
, Product.wxs
el atributo Manufacturer
del nodo Product
con HelloWorld
: <Product Id="*" Name="MyApp.Setup" Language="1033" Version="1.0.0.0" Manufacturer="HelloWorld" UpgradeCode="52f2c69b-5901-4d18-bb96-8c1c86cd1a3e">
En el nodo Fragment
que contiene los nodos del Directory
, envuelva el último con un nuevo Directory
:
<Directory Id="ManufacturerFolder" Name="!(bind.property.Manufacturer)">
<Directory Id="INSTALLFOLDER" Name="MyApp.Setup" />
</Directory>
En el nodo ComponentGroup
, elimine el comentario de los nodos comentados y elimine TODO
luego agregue un nodo de File
en el Component
:
<File Source="$(var.MyApplication.TargetPath)" />
El atributo Fuente especifica dónde encontrar el archivo para empaquetar durante la compilación. En lugar de valores de código rígido para estos atributos en nuestro código fuente, usamos las variables del preprocesador de WiX que se pasan al compilador de WiX.
¡Eso es! Ahora tiene un instalador en funcionamiento que instala y desinstala la aplicación.
Product.wxs
completo de Product.wxs
:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="MyApp.Setup" Language="1033" Version="1.0.0.0" Manufacturer="HelloWorld" UpgradeCode="52f2c69b-5901-4d18-bb96-8c1c86cd1a3e">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate />
<Feature Id="ProductFeature" Title="MyApp.Setup" Level="1">
<ComponentGroupRef Id="ProductComponents" />
</Feature>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="ManufacturerFolder" Name="!(bind.property.Manufacturer)">
<Directory Id="INSTALLFOLDER" Name="MyApp.Setup" />
</Directory>
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<Component Id="ProductComponent">
<File Source="$(var.MyApp.TargetPath)" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>