¿Cómo puedo hacer que mi aplicación C# se borre sola (autodestruirse)? Aquí hay dos maneras en que creo que podría funcionar:¿Cómo puedo hacer que mi aplicación .NET se borre sola?
- Proporcione otro programa que elimine el programa principal. Sin embargo, ¿cómo se borra este programa de eliminación?
- Cree un proceso para CMD que espere unos segundos y luego borre su archivo. Durante esos pocos segundos, cierra su aplicación.
Ambos métodos parecen ineficaces. Tengo la sensación de que hay alguna bandera incorporada o algo en Windows que permite esas cosas. ¿Cómo debería hacerlo? Además, ¿puedes proporcionar algún código de muestra?
ACTUALIZACIÓN: ¡Gracias por todas sus respuestas! Voy a probarlos, y ver a dónde me lleva eso.
Antes que nada, algunas personas me han preguntado por qué querría que mi aplicación hiciera esto. Aquí está la respuesta: hace unos días, leí las especificaciones del Proyecto Aardvark que Joel Spolsky publicó en su blog, y mencionó que la aplicación del cliente se eliminaría después de la sesión remota. Me pregunto cómo funciona esto, y cómo, si alguna vez necesito hacer esto, puedo lograr tal hazaña.
He aquí un pequeño resumen de lo que se ha sugerido:
- crear una entrada de registro que indica a Windows para eliminar el archivo en el reinicio
- lanzamiento CMD con un comando ping que esperar unos segundos y a continuación, elimine el archivo
Ambas, por supuesto, tienen sus desventajas, como se indica en los comentarios.
Sin embargo, ¿funcionaría tal método como se describe a continuación?
Hay dos ejecutables: Program.exe y Cleaner.exe. El primero es el programa en sí, este último es la aplicación que elimina Program.exe y él mismo (si está cargado en la memoria, como estoy a punto de explicar). ¿Es posible que Program.exe (que tiene dependencias) cargue todo Cleaner.exe, que no tiene ninguna dependencia, en la memoria y ejecútelo?
Si esto es posible, ¿se podría empaquetar Cleaner.exe dentro de Program.exe, cargar en la memoria y ejecutar?
¿Realmente necesita eliminar el programa o simplemente deshabilitarlo? Solo quiero ver si entiendo completamente la lógica de negocios porque, por lo general, desactivar completamente algo es más seguro que eliminarlo. –
Sí, desactívelo en lugar de eliminarlo. –
¿Por qué tendrías que hacer esto? Parece que la aplicación no es buena y debes deshacerte de la evidencia. – AGoodDisplayName