in reply to Windows - have program replace itself

Write a wrapper application that dls the current version, compares that to your existing version then launches the newest version.

Actually you don't even have to do the compare, if it is from a secure trusted location. If it is a small script just have your wrapper dl then exec(file).