teamviewer studio solucion programacion not móviles instalar initialized framework error desarrollo curso could aplicaciones installer windows-installer installshield

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!



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.