Los lanzadores son más comunes en los juegos. Piensa en League of Legends, Starcraft II o casi cualquier MMO. Antes de comenzar el juego, tienes una pequeña aplicación de lanzamiento que se ocupa de las actualizaciones y parches.¿Cómo se actualiza una aplicación de inicio?
Quiero moverme en esta dirección con una aplicación particular que no sea un juego que estoy desarrollando. El concepto de iniciador tiene mucho sentido: busca actualizaciones, reemplaza los binarios/bibliotecas apropiados, tal vez ejecuta una verificación de integridad y lanza la aplicación. Sin embargo, ¿cómo se actualizan los lanzadores? Esto tiende a ser un evento raro, pero ¿cómo se hace? ¿El iniciador, literalmente, solo escribe sobre el mismo binario del que se está ejecutando actualmente? ¿O hay algún tipo de paso de intercambio después de la descarga? Necesito poder enviar actualizaciones (raras) al iniciador (especialmente si descubro algún error en mi iniciador).
Mi proyecto particular estará en C#, pero estoy interesado en soluciones conceptualmente similares de C++ y/o Java, así como referencia futura.
Una vez que un programa se carga en la memoria, realmente no debería importar si lo que sucede con el archivo de imagen binaria de donde vino, por lo que se le debe permitir sobrescribirlo. Entonces todo lo que necesitas hacer es relanzar el programa, quizás con algo como 'exec'. –
@KerrekSB Suena bastante simple. Todavía estoy un poco confuso en ese paso final. Entonces, ejecute el programa en un proceso separado y luego simplemente salga? – TheBuzzSaw
@KerrekSB, Windows bloquea el archivo ejecutable mientras se está ejecutando. Parcialmente porque algunas secciones pueden no cargarse inmediatamente. –