A running executable cannot update itself because it is locked by the OS.
So it should be a small launcher-application that checks the remote server for updates, and then either [loads update, starts the main application] or just starts the main application. I implemented such scenario for one of my VFP apps.
If I'm not mistaken, Rick Strahl might have a utility or a library that does exactly that. At least his West Wind Help Builder automatically updates itself with no glitches.