beh in generale devi creare un sistema di "versioning" con il supporto delle dipendenze se vuoi fare una cosa pulita e completa, altrimenti semplicemente definisci come "versione" un'intero pacchetto di librerie, eseguibili e altri file
il tutto deve essere gestito via web
inoltre l'avvio del programma deve essere gestito da un software che verifica ed in caso esegue l'update dato che i file in esecuzione non possono essere sovrascritti
per fare la gestione del tutto devi fare una serie di pagine che si occupino di leggere dal database, o da un file xml, l'ultima versione, ricevere dal tuo applicativo la versione dell'applicativo (leggendola o da un valore del registro o dall'eseguibile stesso) e di conseguenza confrontare questo valore ed inviare, se necessario, il pacchetto che contiene l'aggiornamento.
Il software di update si deve limitare a decomprimere il pacchetto e avviare normalmente il software
nota: siccome il software di aggiornamento non può auto-aggiornarsi (si potrebbe fare ma diventa un po più complessa la cosa) ti conviene mettere le pagine web definendo la versione nell'url
tipo
http://updates.xyz.it/v1.0/CheckForUpdate.php
oppure
http://updates.xyz.it/v1/CheckForUpdate.php
o simili
e poi fai con le pagine php, asp o quello che ti pare tutto il necessario![]()