installer - studio - rollback framework could not be initialized teamviewer 13 solucion
Cómo ejecutar acciones personalizadas solo en la instalación(no desinstalación) (5)
Agregue una condición en la acción para que solo se active durante la instalación, no en la desinstalación.
La acción se ejecuta solo durante la instalación
NOT Installed AND NOT PATCH
La acción se ejecuta durante Instalar y reparar
NOT REMOVE
Ejecutar solo en la instalación inicial:
NOT Installed
Ejecutar en la instalación inicial o cuando se selecciona la reparación.
NOT Installed OR MaintenanceMode="Modify"
Para ejecutar solo una acción durante la desinstalación, use la siguiente condición:
REMOVE~="ALL"
Para ejecutar solo una acción durante la actualización:
Installed AND NOT REMOVE
Estoy seguro de que esto es bastante fácil, pero me ha costado pasarlo mal. Tengo una acción personalizada que ejecuta un instalador diferente (no msi) en la instalación. Lamentablemente, me he dado cuenta de que también ejecuta el instalador en la desinstalación.
He revisado las opciones pero no puedo encontrar la forma de detener esto. Si alguien pudiera ayudarme, estaría increíblemente agradecido.
Además, ¿cómo configuro una acción personalizada para que se active solo durante la desinstalación? ¡Cualquier ayuda es muy apreciada chicos!
Tenga cuidado con REMOVE=ALL
. No está disponible antes de la secuencia de validación de instalación.
Y verifique los enlaces a continuación para obtener más detalles:
http://msdn.microsoft.com/en-us/library/aa371194(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/aa368013(v=vs.85).aspx
Un ejemplo:
<InstallExecuteSequence>
..
<Custom Action="QtExecIdOfCA" Before="InstallFinalize">NOT Installed</Custom>
..
</InstallExecuteSequence>
..
..
<CustomAction Id="QtExecIdOfCA" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="ignore" Impersonate="no"/>
¡Darse cuenta! La condición se agrega a la etiqueta <Custom>
y no a la <CustomAction>
me confundió, porque Custom es seguido por la acción attribue
Un poco de una corrección:
Finalmente, para ejecutar solo una acción durante la desinstalación, use la siguiente condición: REMOVE="ALL"
Esto parece más apropiado ya que la propiedad REMOVE
contiene las características que se desinstalan.
Entonces, si hago una modificación para eliminar una característica, REMOVE
es verdadero y la acción que debía ejecutarse solo en la desinstalación se ejecuta en modificar.
Más detalles aquí en MSDN
Una condición en la acción personalizada, probablemente con una acción personalizada coincidente para realizar la desinstalación. No estoy seguro de qué herramientas está utilizando, pero suponiendo que la instalación secundaria esté vinculada a un componente, usaría ese estado de componente. Un estado de = 3 significa un estado de destino de instalado. Un estado = 2 significa un estado objetivo de ausente. Tenga en cuenta que el estado no se establecerá si no hay cambios.