Sto implementando un semplice meccanismo di aggiornamento per un'applicazione sto scrivendo l'ultima parte del processo di aggiornamento consiste nel rinominare il file eseguibile dell'applicazione corrente da qualcosa come myApp.exe a myApp.old.exe e quindi rinominare il nuovo scaricato e file aggiornato da myApp.new.exe a myApp.exe.Esiste qualche tipo di meccanismo di transazione del file system disponibile per l'applicazione .net?
Mi piacerebbe trovare un modo per queste due operazioni di essere atomico, perché se la mia applicazione si blocca (per qualsiasi motivo, come un asteroide che cade su una linea elettrica) dopo che si è rinominato e prima che rinominasse la nuova versione , sarà bloccato in uno stato in cui non può essere riavviato usando le solite scorciatoie, quindi non sarà in grado di terminare l'aggiornamento.
Quindi, è comunque necessario rendere l'aggiornamento sicuro?