Eliminar a sí mismo mientras se ejecuta
-
27-10-2019 - |
Pregunta
Actualmente estoy creando una aplicación de desinstalación que elimina la carpeta de la aplicación. El problema es que no puedo eliminar la aplicación de desinstalación que está en la misma carpeta causa que se ejecute. ¿Hay alguna forma de eliminar la aplicación mientras se ejecuta, por lo que está solo en la memoria?
string Installation = UninstallRegister.Read("InstallationLocation");
if (Directory.Exists(StartMenu))
{
Directory.Delete(StartMenu, true);
}
Saludos
Solución
Una idea simple sería copiar la aplicación de desinstalación a % TEMP % y ejecutarse desde allí. Sin embargo, esto dejaría un archivo en % TEMP % (que probablemente no sería notado por nadie).
Otros consejos
Puede usar el comando del comando del comando del sistema
nircmd Tiene un comando llamado CMDWait, puede establecer un tiempo de espera para eliminar su archivo, luego cierre la aplicación y deje que elimine
Puedes usar este comando. Cierra su aplicación e inicia CMD Eliminar el comando de directorio arter deley = 3000
Esta solución elimina la aplicación y carpeta.
Process.Start("cmd.exe", "/C ping 1.1.1.1 -n 1 -w 3000 > Nul & RD /s /q " + Path.GetDirectoryName(Application.ExecutablePath));
Application.Exit();