I would use a separate "upgrade" application. There are many ways to do it, this is one.
Prompt a message saying "application restarting, please wait", start the "upgrade" application and quit. The new app shows a form with a simple message (like waiting...) and starts a timer. In the timer event (few seconds, to give time to the main application to end, or just check when the main app is no longer running) delete the old version, download the new exe, start it and quit the "upgrade" app. The "upgrade" app needs to be installed only once