HomeGuidesAPI Reference
Submit Documentation FeedbackJoin Developer CommunityOptimizely GitHubOptimizely NuGetLog In

Upgrade Episerver Relate to CMS 11

This topic describes how to upgrade Episerver Relate to Optimizely Content Management System (CMS 11).

Prerequisite: If you do not have one, set up a Relate 7.5 website. See Relate+ 7.5 documentation.

  1. Use Visual Studio to open the website.
  2. Press Ctrl+Shift+S to save the solution.
  3. Change the Target Framework to 4.6.1.
  4. Install the following Optimizely NuGet feed packages:
  5. Remove solution references to EPiServer.BaseLibrary.dll and EPiServer.Implementation.dll.
  6. From the \b__in folder, delete EPiServer.BaseLibrary.dll, EPiServer.Implementation.dll, and EPiServer.WorkflowFoundation.__dll.
  7. Fix the following obsolete or missing API functions:
    • Error CS0115  'PropertyClubAssociation.CreatePropertyControl()': no suitable method found to override EPiServer.Templates.RelatePlus
    • Error CS0115  'PropertyForumAssociation.CreatePropertyControl()': no suitable method found to override EPiServer.Templates.RelatePlus
    • Remove CreatePropertyControl () functions and replace RelateInitializationModule.cs with the attached file.
    • Replace the following methods and properties:
Old New
Common.EPiServerCommonEventArgs EPiServer.Common.EPiServerCommonEventArg
Common.Uri.UriProvider EPiServer.Common.Uri.UriProvide
Common.EntityStatus.Approved EPiServer.Common.EntityStatus.Approved
Common.Security.IUser EPiServer.Common.Security.IUser
Common.Settings EPiServer.Common.Settings
Common.Sorting EPiServer.Common.Sorting
Common.Visits EPiServer.Common.Visits
 AccessControlList: Exists AccessControlList:Contains

change

*   Fix the compile error in _Templates\\__RelatePlus\\InitializationModules\\CmsIntegrationModule.cs_ by replacing it with the [attached file](/epiui/CMS/Content/contentassets/7ce4a81509d842879d33e0fa2dc57bc6/cmsintegrationmodule.cs,,189220?epieditmode=False "CmsIntegrationModule.cs").
    
*   In _RouteTable.Routes.GetVirtualPathForNonContent_, change

var currentLanguage = Globalization.ContentLanguage.PreferredCulture.Name;

to

var virtualPath = UrlResolver.Current.GetVirtualPathForNonContent(entry, currentLanguage, null);
  • In Configuration.Settings.Instance.SiteDisplayName, update EPiServer.Web.SiteDefinition.Current.Name.

  • In StripHtmlFilterRules, update using EPiServer.HtmlParsing.Internal;.

  • In EPiServer.Web.PermanentLinkMapStore.TryToMapped, update Web.Routing.UrlResolver.Current.TryToPermanent(responseItem.Uri.ToString(), out mappedUrl) .

  • Change

    PermanentContentLinkMap pplm = PermanentLinkMapStore.Find(pageEntity.PageGuid) as PermanentContentLinkMap; 
    

    to

    PermanentLinkMap pplm = ServiceLocator.Current.GetInstance<IPermanentLinkMapper>().Find(pageEntity.PageGuid);
    
  • Regarding the function VersioningFileSystemSearchHandler: temporarily ignore it. To do so, comment it and return zero (0).

  1. In the EPiServerFramework.config file, run Update-epidatabase or add an updateDatabaseSchema="true" attribute to the episerver.framework tag.

  2. Press Ctrl+F5 to browse the website.

  3. Convert the database to UTC by opening Package Manager Console and running the cmdlet Convert-EPiDatabaseToUtc.

  4. Open RelatePlus.Master.Designer.cs. Within that file, change protected global::System.Web.UI.HtmlControls.HtmlGenericControl HtmlElement; to protected global::System.Web.UI.HtmlControls.HtmlElement HtmlElement;.

  5. Open ClubMasterPage.Master.Designer.cs. Within that file, change protected global::System.Web.UI.HtmlControls.HtmlGenericControl HtmlElement; to protected global::System.Web.UI.HtmlControls.HtmlElement HtmlElement;.

  6. Open SearchRelatePlus.Master.Designer.cs. Within that file, change protected global::System.Web.UI.HtmlControls.HtmlGenericControl HtmlElement; to protected global::System.Web.UI.HtmlControls.HtmlElement HtmlElement;.

  7. Rebuild the project.

  8. Copy the IMAP4.Net.dll and Parse.Net.dll (attached files) to the /bin folder.

  9. Press Ctrl+F5 to browse the website.

  10. If you want to send email in a Relate+ site, open the file EPiServerMail\MasterPages\Mail.Master, and replace

<%= Page.DojoConfig(false, true) %>

with

<%= Page.ConfigureDojo(false, true, false) %>