This feature should allow update BlogEngine.NET version 3.0 and up with a click of the button. Versions prior to 3.0 must be updated manually. To be clear, one would need manually update to 3.0 and after that will be able to get updates automatically.
Because update will replace most of the files with new versions, application must have write permission on entire blog directory.
- Folders "App_Data" and "Custom" will NOT be touched by update process. These folders should be used for storing user data and custom code.
- Only known application files inside the "bin" folder and in the blog root will be replaced with new versions. If you have custom DLLs in the "bin" or custom page in the blog root, they will be safe.
- All known application folders, like "Account", "Admin" etc. will be dropped and replaced with new versions.
These rules are intentionally simple and easy to understand and follow. Basically they encourage people do not mix custom and application files so that upgrade mostly comes down to blowing away old and moving in new application. There are few exceptions (web.config etc) but main logic is very straightforward.
When update is available, message will be displayed on the dashboard.
Clicking "upgrade" button will redirect to upgrade page that looks like this.
As process runs, should see confirmation on every step.
Folder structure changes
To simplify update and make it safe and stable, some folders were moved from previous locations.
User controls, can be used in regular(.aspx) themes
|HTML5 media player files
When updating blog that uses database provider, update process will determine what provider is used by examining web.config and will pull new provider specific web.config from setup folder. It will also keep existing connection string in place, so no need to manually update it. However, if you have other modifications to web.config they won't be preserved and need to be updated manually.
If update process unexpectedly fails, due to locked files, system shutdown etc. or new version does not work for you, manual recovery will be needed. Auto rollback will be added later, but manual rollback is easy and can be done in few steps.
- Delete all files and folders except "setup", "App_Data" and "Custom".
- Old blog files saved to /setup/upgrade/backup/old - move them back to blog root.
Manual update can be performed equally easy.
- Download latest version
- Delete all except "App_Data" and "Custom".
- Copy new version, except "App_Data" and "Custom".
- If using database, copy web.config for corresponding provider in "setup" folder and update connection string.