Randy,
Here is the basic process I use.
1.
EVERY build must have a unique version on the publish page. So, if I have a build version out for testing (1.0.0.0), then move it to beta for user acceptance with no changes to code it becomes 1.0.0.1, then move it with no changes to production it becomes 1.0.0.2. This is true even though each of these is theoretically a separate installation. If you don't do this, bad things can happen (failed installations, corrupting your click-once installations). The assembly and/or file version can be whatever they need to be. My splash form shows the publish version, not the assembly or file version so the user doesn't get confused (they will see the publish version on the publish.htm page).
2. I publish the application. I always set the Publish Folder Location AND the Installation URL. The Publish Folder Location (1 in image below) is local (some place in my local file system). The Installation URL (2 in image below)
MUST be the URL the users will use to get to the .application file used to install the application. Note that the publish.htm can be someplace else, but it must point to the .application file at the Installation URL.
3. Once published, I use MageUI to update the version specific .application file (see below) so I can run multiple version of the same app. In MageUI, you need to update, the Name on the Name page and the Product on the Description page. See attachments for images.
The name + product determines unique installation
The product name appears in Click-Once dialogs. I also use it in my splash/about forms.
4. Always select the .manifest file, even if it is already correct. This ensures that the hashes are correct.
5. Save in MageUI, which updates all the hashes.
6. Replace the .application file referenced by publish.htm with the version specific one changed in #3 above.
In VS 2005, when an application is published, the folder structure looks something like the following:
where:
1 is the version specific folder containing the .deploy files and the .manifest files.
2 is the generic .application file called by publish.htm to install the application via Click-Once.
3 is version specific .application file that can be used to roll back installation at the server.
In step #3 you modify the version specific .application file, then in this step you delete the generic .application file, copy the version specific file and rename it to the generic version. (Hope that make sense.)
In VS 2008, it's a bit different, but same concepts apply. With VS 2008, an Application folder is created and within it there is a version folder. Within in this folder is an .application file for that version. In the root install folder, there is a copy of that file also. So, in step #3, you modify the .application file in the version folder, then copy over the generic .application file in the root folder.
Since I'm still targeting .NET 2.0, I haven't noticed any improvements yet, as the improvements are when you use .NET 3.5 and are not dependent on which version of VS you use (though as noted, VS 2008 publishes using a different folder structure).
I hope this gets you going in the right direction (or satisfies your curiosity :
). Let me know if you have more questions.