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.
Requirements
Because update will replace most of the files with new versions, application must have write permission on entire blog directory.
Conventions
- 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.
Steps
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 | Custom/Controls |
User controls, can be used in regular(.aspx) themes |
App_Code/Extensions | Custom/Extensions | Custom extensions |
Media | Custom/Media | HTML5 media player files |
Themes | Custom/Themes | Custom themes |
Widgets | Custom/Widgets | Custom widgets |
Database providers
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.
Rollback
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
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.