¿Cómo agregar una acción personalizada de WiX que ocurre solo al desinstalar (a través de MSI)?
Me gustaría modificar un instalador MSI (creado a través de WiX ) para eliminar un directorio completo al desinstalarlo.
Entiendo las opciones RemoveFile
y RemoveFolder
en WiX, pero no son lo suficientemente sólidas como para eliminar de forma recursiva una carpeta completa que tiene contenido creado después de la instalación.
Noté la pregunta similar de Stack Overflow Eliminación de archivos al desinstalar WiX , pero me preguntaba si esto se podría hacer de manera más simple usando una llamada a un script por lotes para eliminar la carpeta.
Esta es la primera vez que uso WiX y todavía me estoy familiarizando con las acciones personalizadas . ¿Cuál sería un ejemplo básico de una acción personalizada que ejecutará un script por lotes durante la desinstalación?
EDITAR : Quizás mire la respuesta que se encuentra inmediatamente debajo .
Este tema ha sido un dolor de cabeza durante mucho tiempo. Finalmente lo resolví. Hay algunas soluciones en línea, pero ninguna funciona realmente. Y por supuesto no hay documentación. Entonces, en el cuadro a continuación hay varias propiedades que se sugieren usar y los valores que tienen para varios escenarios de instalación:
Entonces, en mi caso, quería una CA que se ejecutara solo en las desinstalaciones, no en las actualizaciones, ni en las reparaciones ni en las modificaciones. Según la tabla anterior tuve que usar
<Custom Action='CA_ID' Before='other_CA_ID'>
(NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")</Custom>
¡Y funcionó!
Hay varios problemas con la respuesta de yaluna , además los nombres de las propiedades distinguen entre mayúsculas y minúsculas, Installed
la ortografía es correcta ( INSTALLED
no funcionará). La tabla anterior debería haber sido esta:
También suponiendo una reparación y desinstalación completa, los valores reales de las propiedades podrían ser:
La documentación de sintaxis de expresión de WiX dice:
En estas expresiones, puede utilizar nombres de propiedades (recuerde que distinguen entre mayúsculas y minúsculas).
Las propiedades están documentadas en la Guía del instalador de Windows (por ejemplo, Instalado )
EDITAR: Pequeña corrección a la primera tabla; Evidentemente, "Desinstalar" también puede ocurrir con solo REMOVE
estar True
.