with visual tutorial studio prime how create windows wix windows-installer

windows - visual - Cómo evitar el mensaje "Las siguientes aplicaciones deben estar cerradas" durante la desinstalación con WIX?



wix visual studio 2012 (2)

Intento escribir un instalador MSI usando WIX. Durante la desinstalación, debo ejecutar una acción personalizada especializada que primero detiene mis servicios y luego cierra la aplicación. Lo hago después del evento InstallInitialize usando el siguiente recargo:

<CustomAction Id=''myCustomAction'' BinaryKey=''myDll'' DllEntry=''msiUninstallInitialize'' Execute=''deferred'' Impersonate=''no'' /> <InstallExecuteSequence> <Custom Action=''myCustomAction'' After=''InstallInitialize''></Custom> </InstallExecuteSequence>

El problema es que si una versión anterior de mi aplicación se estaba ejecutando antes de intentar actualizar a una más nueva usando mi MSI, estaba obteniendo un Administrador de reinicio que muestra este mensaje:

y luego este:

Para evitar que lo haga, agregué la siguiente propiedad:

<Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable" />

Pero ahora el desinstalador muestra esta ventana:

Entonces, tenía curiosidad, ¿hay alguna manera de desactivar las comprobaciones si mi aplicación se está ejecutando (la cerraré yo mismo durante el procesamiento de acciones personalizadas)?


Ha inhabilitado la interacción de Restart Manager con Windows Installer, por lo que ahora Windows Installer vuelve a su comportamiento anterior, el cuadro de diálogo FileInUse. Este comportamiento está documentado con la propiedad MSIRESTARTMANAGERCONTROL .

Nunca lo he intentado pero la teoría dice que puede hacer que su diálogo FilesInUse esté oculto ( Dialog/@Hidden=''yes'' ) para que no se muestre el diálogo.


La solución a esto es mover su acción personalizada que detiene sus servicios y procesos antes del paso de preparación en la etapa de ejecución de la instalación .

Según los documentos de AdvancedInstaller (énfasis mío):

Preparación: verifica todos los volúmenes para tener espacio suficiente para la instalación. Comprueba y notifica al usuario si hay archivos de instalación en uso. Puede establecer el indicador diferido, revertir o confirmar para las acciones posteriores a este grupo. Estos son ejecutados por el grupo de acción Ejecución final. Puede ejecutarlos elevados mediante el uso de los indicadores "sin suplantación".

Sin embargo, es importante tener en cuenta que no puede usar los indicadores "sin suplantación" en estas acciones personalizadas.