visual tutorial toolset studio wix wix3.6 burn

tutorial - ¿Cómo usar CustomAction en WIX Bundle?



wix visual studio 2015 (2)

Según lo veo, tienes tres opciones:

  1. Dependiendo de la información que necesite, puede usar WixUtilExtension para realizar tareas simples como leer claves de registro y realizar búsquedas de archivos, que luego puede pasar los resultados a sus paquetes de instalación como propiedades.

  2. Implemente acciones personalizadas en los paquetes de instalación individuales (no en el paquete).

  3. Escriba su propia aplicación de arranque automático para determinar todas las propiedades que necesita establecer y luego pasarlas a sus paquetes de instalación. Esto es más complejo que el # 1 y el # 2, pero si le interesan, los siguientes enlaces le ayudarán a comenzar: presentando aplicaciones de arranque automático administradas y escribiendo un instalador wpf wix

Para darle un trasfondo, tengo 4 MSI que provienen de nuestro proveedor y tienen que ir a los servidores de nuestra compañía (estamos viendo alrededor de 3500 servidores). A partir de ahora, mis contrapartes están gestionando esto usando scripts vbs, ps1. Pero el problema con el script es que cada vez que llega una actualización tenemos que preocuparnos por desinstalar el paquete existente antes de ejecutar el nuevo y un montón de hardcoding.

Quiero automatizar todo el proceso (con muy menos hardcoding) configurando un script WIX para empaquetar los 4 MSI juntos. Leí sobre el paquete WIX y lo usé para crear un solo MSI. Pero ahora hay muchas variables para pasar a las 4 MSI, así que pensé en usar acciones personalizadas para establecer estas variables en función del entorno / máquina donde se está ejecutando la MSI. Pero no puedo hacer que la acción personalizada funcione? ¿Me estoy perdiendo de algo?

Un poco de Google y vi algo así como que no hay CustomActions en Bundle? alguien puede confirmar?

Además, si no hay CA, ¿cuáles son mis opciones? ¿Cómo puedo manipular las variables para pasar a las 4 MSI? La mayoría de ellos debe establecerse en función de la máquina que se está ejecutando (como la ruta de instalación, el ID de usuario, el ID del grupo de aplicaciones, etc.).


Hay una cuarta opción, un truco ligero útil, identificado por Vijay Kotecha (ver http://vijayskotecha.blogspot.com/2013/07/wix-bootstrapper-custom-action.html ), ...

Básicamente, construya un <ExePackage> alrededor de un archivo .bat o .cmd por lotes. El archivo de lote / comando contiene la única línea '' %* '' que vuelve a ejecutar todos los argumentos de la línea de comando como un comando de primera clase.

Así:

<ExePackage ... SourceFile="SourcePath/WixCustomAction.cmd" InstallCommand="my_custom_action.exe my_custom_parameters" /> <ExePackage ... SourceFile="SourcePath/WixCustomAction.cmd" InstallCommand="my_next_action.exe my_next_parameters" />

Donde WixCustomAction.cmd es un archivo que contiene solo '' %* ''.

Estos <ExePackages> se pueden colocar en el <Bundle><Chain> sucesivamente según sea necesario utilizando diferentes InstallCommand s según sea necesario.