Here's my general workflow when upgrading:
- TortoiseHG pull to make sure local code base is completely up-to-date.
- Make sure all purchased add-on products are up-to-date in the local code tree.
- Rebuild All.
- Publish from Visual Studio to a local folder.
- Verify that \Data\Sites\* is not included in the published folder; delete it if it is.
- Delete unneeded multilingual translation, help, and message template files from the published folder.
For the following steps, I start with our development web server first, then notify users and give them time to test. Once testing has been completed and everyone is ready, I perform the same steps to the production server.
- Stop web site; back up file tree and database.
- Copy the local published folder over the top of the root of the web site mojoportal folder, overwriting all files.
- Start the web server.
- Navigate to /setup.aspx.
- (optional) Delete any older versions of 3rd party products (CKEditor, TinyMCE, etc.) from the web server.
One thing I don't show here is the need to make sure your local web.config is appropriate for production use. I always keep the local web.config production-ready, so I don't have to worry about modifying it during deployment.
I hope that helps,