Estrategias para reemplazar el programa ejecutable en Windows

Tengo un programa de Windows que necesita actualizarse automáticamente desde un servidor.

Ya puede transferir archivos desde el servidor y actualizar + validar cosas como los archivos de plugin DLL antes de cargarlos.

Sin embargo, este programa también necesita actualizarse. Probablemente hay algunas formas diferentes de hacerlo, y la más obvia que he visto de varios clientes de juegos en línea es crear un "parche automático" que descarga y luego ejecuta el ejecutable del cliente. Esto introduce el problema de tener que actualizar el autopatcher, por lo que si hay una solución más elegante, me gustaría saberlo.

Tengo que imaginar que hay una manera de descargar lo que será el nuevo archivo ejecutable como un archivo temporal, digamos "client.exe.tmp" y luego inicie un proceso separado que espere a que el client.exe original salga y luego renombra / copia el nuevo archivo encima de él.

¿Alguien ha hecho este tipo de cosas antes con éxito y qué método usó para que funcione?

Respuestas a la pregunta(3)

Su respuesta a la pregunta