Time to Move On
I've been pretty happy with BlogEngine.NET 1.1 for the last ten months, but I don't want to get too far behind, so I decided today to update to the current release, BlogEngine.NET 1.3.1.
This procedure is specific to my installation, but it may give you some guidance on how to upgrade your installation. As background, my setup is as follows:
- I run my own web server under Small Business Server 2003.
- IIS is set up with all .NET 2.0 applications sharing an application pool called NET20AppPool.
- I set up a new application for blogs called, uh, blogs. This maps to a virtual directory called inetpub\blogs.mycompany.
- Inside the blogs.mycompany folder is a subfolder containing the actual blog application. I call this mark.
Getting Ready
I watched Al Nyveldt's installation video for a helpful refresher on how to set up BlogEngine.NET. I decided to get the base install of version 1.3.1 working first, then to copy in the settings and posts from my previous installation.
Do the Upgrade
Follow these steps to upgrade from BlogEngine.NET 1.1 to 1.3.1:
-
Download and unzip the web installation file. Rename the unzipped folder to
mark.
- In IIS, stop the blogs application and the DOTNET20AppPool.
- In Windows Explorer, under inetpub\blogs.mycompany:
- Rename mark to mark.old.
- Move the unzipped mark folder to inetpub\blogs.mycompany
folder.
- Remove any existing permissions from mark. Go to Advanced to inherit
permissions from inetpub\blogs.mycompany.
- Go to the App_Data folder and give NETWORK SERVICE Modify
permission. (I have NET20AppPool set up to use the NETWORK SERVICE account.)
- Edit mark\robots.txt to point to the correct path.
- In the App_Data folder, copy settings.xml to
settings.orig.1.3.1.xml.
- In the old App_Data folder, use Microsoft Word or SourceSafe
to display the differences between Settings.orig.1.1.xml and
Settings.xml. In the new App_Data folder, make the
corresponding changes to Settings.xml.
- In the new App_Data folder, delete the contents of the log,
pages, and posts folders.
- Copy the following files and folders from old App_Data folder to the
new App_Data folder, overwriting when necessary:
blogroll.xml
categories.xml
roles.xml (wasn't present in 1.1 but probably need to copy when
upgrading past 1.3.1)
users.xml
files\*.*
log\*.*
pages\*.*
posts\*.*
- Copy the old themes\mytheme folder to the new themes folder.
- In IIS, start the DOTNET20AppPool and the blogs application.
- Open the blog in a browser.
Test and Debug
When opening the blog in a browser, you may encounter errors if underlying technology has changed. Check the
server's event log if you get an error. On this update, I found that
Utils.SafeMail was no longer there. So in mytheme\sidepanel.ascx, I copied in the new alternative (which uses a contact form) from the Standard theme. The required contact.aspx form was already there; I edited it to put
the labels and fields in a table for a nicer look.
I also edited RecentPosts.cs to add a space before the Comments and Ratings labels to keep them from running together.
You should check the Control Panel > Settings tab to see if there are
new settings that you want to configure. I chose to uncheck Enable post
ratings for now. I also changed the avatar processor from Combination back to Gravatar.
This got rid of the colorful but squirrelly icons that must be coming from
Monster when the person has no avatar.
By the way, I initially formatted the above procedure in FrontPage
2003, complete with a, b, c, d, etc. for the sub-points. This created
an <ol type="a"> tag. For some reason, BlogEngine.NET strips out the type attribute when I paste in the HTML, leaving incorrect sub-point numbering. No fix for that now.
Fix the Theme
I wound up having to re-do most of my theme modifications, which weren't too extensive:
- Copy the contents of the current themes\Standard folder to the themes\mytheme.
- In site.master, add my "customized by" note to the footer.
- In sidepanel.ascx,
copy in the previous About Me table. (See the note above about using the new contact form instead of Utils.SafeMail.) Remove a few sections I don't use (Calendar etc.). Make the Archive header a hyperlink to the new archive.aspx page. Copy in the previous Disclaimer text.
- Modify style.css to use the colors used in the old version. (There are lots of new styles, so you can't just use the old version.) Add the following styles to the Side Panel section to handle a hyperlink (now that the Archive header is a hyperlink):
#sidepanel .box h1 a {
color: #999999;
text-decoration: none;
}
#sidepanel .box h1 a:hover {
text-decoration: underline;
color: #003399;
}