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 that.

Database upgrade

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.

XSLT

To get you xslt working, you need to do 2 things: change the legacy schema so your old schema xslt code is supported. In config/umbracoSettings.config change <UseLegacyXmlSchema> to true. You'll also need to remove following dll files from /bin directory:

  • Iron*.dll (all dlls starting with Iron)
  • Microsoft.Scripting*.dll
  • Microsoft.Dynamic.dll
  • umbraco.macroEngines.legacy.dll
  • umbraco.standardFormhandlers.dll
  • RazoEngine.Core.dll
  • RazorEngine.Templates.dll
  • VistaDB*.dll

 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), umbracoSettings.config, UrlRewriting.config and 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"
          runAsync="true"
          supportUnpublished="false"
          supportProtected="false"
          interval="10"
          enabled="true"
          analyzer="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net"
          indexSet="BlueAndOrangeIndexSet" />

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 App_Data/Packages/.

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 in it.

Finally, go to umbraco backoffice and republish the content :)

Tagged: configuration  umbraco 4.0.x  umbraco 4.7.x  upgrade  xslt