HomeGuidesAPI Reference
Submit Documentation FeedbackJoin Developer CommunityOptimizely GitHubOptimizely NuGetLog In

Upgrading Episerver Relate to CMS 11

This topic describes how to upgrade Episerver Relate to 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
*   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) %>