modificar - CerrarAplicación durante la desinstalación-wix
meta tags wix (1)
Estoy usando Wix 3.6. Tengo un problema, al desinstalar si hay alguna ventana abierta y se muestra en la barra de tareas (esta ventana es parte de mi msi, que estoy tratando de desinstalar), muestra un cuadro de diálogo que le pide al usuario que cierre la aplicación (" La siguiente aplicación debe cerrarse antes de continuar con la instalación ").
Intenté lo siguiente, pero no tuve suerte.
<InstallExecuteSequence>
<Custom Action="WixCloseApplications"
Before="InstallInitialize">Installed</Custom>
<Custom Action="StartMonitor"
After="StartServices">NOT Installed</Custom>
</InstallExecuteSequence>
<util:CloseApplication Id="CloseMonitor" Target="Monitor.exe"
CloseMessage="yes" RebootPrompt="no">
Installed
</util:CloseApplication>
Quiero que el wix detecte las aplicaciones y las cierre como parte del proceso de desinstalación. No es necesario mostrar el mensaje del cuadro de diálogo. ¿Alguien puede por favor ayudarme a implementarlo?
Funciona bien, se instala desde el símbolo del sistema con el modificador / qn, pero sin el modificador / qn obtengo el diálogo ("La siguiente aplicación debe cerrarse antes de continuar la instalación"). ¿Puede alguien ayudarme en cómo solucionar esto?
Agregue un evento personalizado C#
y agregue el primer evento en InstallUISequence
y use el siguiente código para matar el proceso:
try
{
Process proc = Process.GetProcessesByName("MyApplication");
proc.Kill();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
y si tu aplicación admite varias instancias, entonces cuenta el no. de instancias primero:
int count = 0;
Process[] process = Process.GetProcessesByName("MyApplication");
foreach (Process pr in process)
{
if (pr.MainModule.FileName.Equals(Assembly.GetExecutingAssembly().Location, StringComparison.OrdinalIgnoreCase))
{
count++;
}
}
Y si no estás usando y DllEntry
entonces sigue este enlace