I did not use clickonce, but a couple of years ago I had to write something that would automatically update. I cannot find the code, otherwise I would post it, but this is what it did:
1) The main exe would look at the assembly and find the version.
2) If exe can connect to a public server, it will check and see if another assembly is available.
3) If the assembly was available, it will load it and start a new assembly
4) If the assembly is not available or has not been connected to the Internet, it simply launches a local one.
No user interaction is required for this.
Mario
source share