Ottima domanda.....

Il download io lo facevo in ftp (avevo il controllo totale del server...) con un utente appositamente creato che poteva fare solo quello....

Lo downlodavo in un file temp che poi sostituivo quando il download era completato con successo.

Dopodichè facevo partire automaticamente l'applicazione così aggiornata.