How to make a game updater/launcher?

I’m making a 2d side scroller platform game and i was wondering… as i’m probably going to release several versions of the game and/or fixed scripts i will need a launcher that detects if there’s a new asset or a new script on the server or if there’s a modified version of a script of the server(this could easily be done with checking upload dates right?) and after that starts downloading the files and putting them where they belon.

an example of this would be:

User starts game, launcher window pops up and prompts the user with a new update (can be an updated script,asset,file, rar, etc). User clicks update game button and the launcher connects to the server and retrieves the files. if file is a modified version of an existing one, the launcher goes to it’s directory and overwrite the file with the newer version. after that i believe that the launcher would have to rebuild the game.

How do one achieves succesfully that series of requirements? i guess this should be easy as it is just download and overwriting if existing or putting new file where it belongs.

i haven’t done any code for that part yet as i just started the project and i’m in the designing phase so don’t ask me to see what i’ve tried. i ask this because i know i lack the required knowledge to complete that task even though i haven’t started development.

The Problem is if you do the checks from the game.exe, you can’t overwrite that exe, because it’s locked.
If you have a separate launcher, it can update the game, but not the launcher itself.

So you would need to develop an application outside the game, which means you have to make yourself sure it works on all your platforms etc.

Check out this simple open source Autoupdater as an inspiration:
http://gc.codehum.com/p/sharpdate/