Having recently upgraded several umbraco 4.0 projects to latest
4.7.2, I found it a bit frustrating due to the lack of online
documentation available. Fortunately the upgrade was not as
difficualt as I initially though :)
Backup and new instance
In case something goes wrong - you need a backup of your
exisiting database. I found it best to create a brand new website
running umbraco 4.7.2 and once you've got the backup of your
existing database / and brand new umbraco install running connect
the new website to it.
If you're experiencing some issues with getting your website on
.NET 4.0 - this may indicate that .NET 4.0 isn't registered with
your IIS. I will soon post another article to help you fix
There are some database structural changes between the versions,
so you need to run a sql script - attached to this post, however
please be careful - this only applies to verion 4.0.x - 4.7.x
upgrade. If you run the installation wizard via /install dir, this
script will be executed as a part of the upgrade process. I prefer
to run it manually as the wizard often fails.
To get you xslt working, you need to do 2 things: change the
legacy schema so your old schema xslt code is supported. In
<UseLegacyXmlSchema> to true. You'll also
need to remove following dll files from /bin directory:
- Iron*.dll (all dlls starting with Iron)
web.config, /bin and config files
Open both web.cofig files (old and new version) in WinMerge, add
carefully copy all the custom keys/sections of your old web.config.
Make sure these are compatible/valid with .NET 4.0.
In /config dir - you need to WinMerge several config files -
most likely those will be: ExamineIndex.config and
ExamineSettings.config (if you have Examine
configured as the search engine on your website),
restExtensions.config (remove /bin from path),
xsltExtensions.config (remove /bin path).
If your website use any 3rd party .dlls you need to copy them
over to the new installation /bin dir.
If you use any external web services, you need to copy entire
App_WebReferences folder as well. If there are any custom classes
in App_Code dir, you need to copy them as well - make sure these
are .NET 4.0 compatiable.
<add name="BlueAndOrangeIndexer" type="UmbracoExamine.LuceneExamineIndexer, UmbracoExamine"
other website components
You'll obviously need all your masterpages, xslt files,
usercontrols, media, images, css etc. to be copied as well. For
packages you need to check whether there're compatiable with the
version of umbraco you're currently uprading to (4.7.2) and
reinstall them, or manually copy them from /data/packages/ to
UI.xml and dashboard
If you have any custom dashboard tabs/usercontrols, you need to
copy them to umbraco/dashboard and register them in config file.
WinMerge umbraco/config/create/UI.xml if you have any custom stuff
Finally, go to umbraco backoffice and republish the content