Personally I’m using a very simple methodology for any kind of auto-update:
- Have an installer
- Check the new version (simple WebClient and compare numbers with your current AssemblyVersion)
- If the version is higher download the latest installer (should be over SSL for security reasons)
- Run the downloaded installer and close the application. (in this stage you need to have admin privileges if your installer requires you to be an admin)
The installer should take care of the rest. This way you’ll always have the latest version and an installer with a latest version.