Tengo una CustomAction bastante larga en un instalador wix, y quiero poder cambiar el texto 'Estado: ...' mientras se ejecuta la operación, para ver que hay progreso y actualización en su estado interno. Sé cómo establecer el texto de progreso de una acción personalizada, pero lo que quiero es cambiar dinámicamente el texto de progreso durante la ejecución de la acción personalizada.WiX: cambiando dinámicamente el texto de estado durante CustomAction
Respuesta
Acciones personalizadas diferidas pueden llamar a la función MsiProcessMessage. A continuación, puede usar INSTALLMESSAGE_ACTIONSTART, INSTALLMESSAGE_ACTIONDATA e INSTALLMESSAGE_PROGRESS para publicar mensajes en la interfaz de usuario.
Otra posibilidad sería dividir su acción personalizada en acciones personalizadas más pequeñas y usar ProgressText (tabla ActionText) para describir las diferentes fases de la instalación. (Haga que cada CA tenga una sola responsabilidad).
A veces, cuando una CA hace demasiado trabajo, es difícil planear las reversiones correctamente.
Obtaining Context Information for Deferred Execution Custom Actions
Utilizando C#/DTF se ve algo como:
using (Record record = new Record(0))
{
record.SetString(0, "foo");
session.Message(InstallMessage.ActionData, record);
}
La instrucción using dispone el registro para liberar el MSI subyacente maneja. La cantidad de campos en el registro y la forma de establecer los datos dependerán de la plantilla definida en la tabla ActionText.
Chris ha explicado correctamente la forma de enviar el mensaje de su CA a ActionData
, pero si está utilizando InstallShield, asegúrese de crear una etiqueta en el cuadro de diálogo SetupProgress
y suscribe el evento ActionData
texto a él. Simplemente, crear un evento ActionText
para una etiqueta no es suficiente, ya que solo mostrará la descripción de CA que cree en la Tabla de Texto de Acción.
- 1. WiX - Pasar parámetros a una CustomAction (DLL)
- 2. ¿Cómo pasar CustomActionData a CustomAction usando WiX?
- 3. Cambiando dinámicamente el texto del encabezado de columna en JTable
- 4. jquerymobile cambiando dinámicamente el texto para la emisión del botón
- 5. WiX CustomActionData está vacío en la llamada CustomAction
- 6. WIX CustomAction - cómo obtener más información en la instalación/registro
- 7. cambiando parámetros sin punto dinámicamente
- 8. Cambiando el color del texto
- 9. WIX: cómo cambiar el acuerdo de licencia durante la instalación
- 10. cambiando el color del texto de uitabbaritem
- 11. Cambiando el texto del icono de la aplicación dinámicamente en Android
- 12. Burn y WiX: estado actual y documentación
- 13. Cambiando el color de la serie en diagramas altos dinámicamente
- 14. En WiX, ¿es posible actualizar el texto de estado al ejecutar acciones personalizadas?
- 15. El registro de un DLL COM NET durante Wix Instalar
- 16. Cambiando el texto de los sms de Android
- 17. XNA Change Game Service dinámicamente durante el tiempo de ejecución
- 18. Cambiando la configuración de smtp en SwiftMailer dinámicamente
- 19. Cambiando el texto del botón hecho en el teclado
- 20. cambiando el color del texto de un UILabel
- 21. dinámicamente crear archivos WIX sin tener que editar manualmente los archivos de Wix
- 22. ID de propiedad de WiX o estado condicional
- 23. Wix: el cambio de propiedad en el cuadro de diálogo se ignora durante la instalación
- 24. Ejecutando devenve.exe/setup después de la desinstalación en Wix
- 25. Terminal en estado interrumpido (texto invisible/sin eco) después de la salida() durante la entrada()/raw_input()
- 26. WIX C++ acción personalizada
- 27. Cambiando el esquema usando cx_Oracle
- 28. Mostrar texto oculto durante encontrar
- 29. Android Cambiando dinámicamente el tamaño del círculo, solo la mitad del círculo se actualiza correctamente
- 30. ¿Cómo guardar el estado durante el cambio de orientación en Android si el estado está hecho de mis clases?
Gracias. Creo que esto es lo que estaba buscando. Mi acción personalizada está escrita en C#, ¿quizás tienes una explicación para DTF? –
Todas las clases y miembros del DTF doco hacen referencia a las contrapartes subyacentes de la API MSI y puede encontrarlas utilizando la pestaña de búsqueda en el archivo de ayuda. Actualizaré mi respuesta para proporcionar una muestra. (No mencionó en qué estaba programando la CA). –
Gracias. Funciona de maravilla :) –