For desktop based applications, what are best practices to perform auto updates? Currently, we download all files, then copy and register (if com dll) to their respective directories.
I looked at Google Chrome update method. It seems that it first downloads a zipped file into a directory, and then unzips all the files. Also, they have a setup application which seems to be used to do the update. Additionally, they create a directory mapped to update version like 1.0.154.43, but they keep the old version’s directory.
The recent blog post from the Chromium team is a great guide:
http://blog.chromium.org/2009/01/google-chrome-installation-and-updates.html
Basically, the same thing is done when you use MS’s ClickOnce and I have no problem using applications with such update method so far, so I guess this classify as a ‘Best practice’… but that’s just me.
Google Chrome is a little different since they use the Google Update service to do the updating but the overall experience/cycle is pretty much the same.
Your user launch an application, if any new version is available, it’s downloaded in the background. And then the next time the application starts, your user gets the new version automatically and (if possible) silently.