Products
Packages [expand] [collapse]
Services
Released in version
11.20.2
11.20.1
11.20.0
11.19.0
11.18.1
11.18.0
11.17.0
11.16.0
11.15.1
11.15.0
11.14.2
11.14.1
11.14.0
11.13.1
11.13.0
11.12.0
11.11.3
11.11.2
11.11.1
11.11.0
11.10.6
11.10.5
11.10.4
11.10.3
11.10.2
11.10.1
11.10.0
11.9.4
11.9.3
11.9.2
11.9.1
11.9.0
11.8.1
11.8.0
11.7.1
11.7.0
11.6.0
11.5.4
11.5.3
11.5.2
11.5.1
11.5.0
11.4.0
11.3.4
11.3.3
11.3.2
11.3.1
11.3.0
11.2.1
11.2.0
11.1.0
10.10.5
10.10.4
10.10.3
10.10.2
10.10.1
10.10.0
10.9.2
10.9.1
10.9.0
10.8.0
10.7.0
10.6.0
10.5.0
10.4.3
10.4.2
10.4.1
10.4.0
10.3.2
10.3.1
10.3.0
10.2.0
10.1.0
10.0.1
9.12.5
9.12.4
9.12.3
9.12.2
9.12.1
9.12.0
9.11.0
9.10.2
9.10.1
9.10.0
9.9.1
9.9.0
9.8.3
9.8.2
9.8.1
9.8.0
9.7.3
9.7.2
9.7.1
9.7.0
9.6.1
9.6.0
9.5.1
9.5.0
9.4.0
9.3.3
9.3.2
9.3.1
9.3.0
9.2.1
9.2.0
9.1.0
9.0.3
9.0.2

Release notes for Episerver updates

This overview lists changes included in Episerver updates delivered as NuGet packages and services. Use the information to decide which updates to apply to your project, see Installing Episerver updates. Select a product, package, or service in the left menu, and filter for dates, features, or bug fixes.

  • See only new features (all features) - filter on item type Feature.
  • See only end-user (user interface) features - filter on item type UI Feature.
  • See only critical bug fixes - filter on item type Critical Bug.

Note: New NuGet packages listed here may not be immediately available in the Episerver NuGet feed.

Changes in EPiServer.CMS.Core

Item type
From date
To date
Items/Page
Area Id Type Description Released
CMS-17430
  Custom registrations through ContentDataInterceptorHandler is not detected

The intention is that we should use Castle for proxy generation if a partner has custom registration for intercerptors. It seems that in some case we fail to detect that.

See https://world.episerver.com/forum/developer-forum/-Episerver-75-CMS/Thread-Container/2020/11/no-longer-able-to-use-custom-getters-and-setters-through-contentdatainterceptorhandler-for-specific-property-types/

Fix Version/s: EPiServer.CMS.Core 11.20.2;
Nov 13, 2020
CMS-14788
  Get URL to page with "Shortcut to another content item"
Steps to reproduce:

1. Add new page property to Article page type (ArticlePage.cs):

public virtual ContentReference RelatedPage { get; set; }

2. Add the following to Article page view file (/Views/ArticlePage/Index.cshtml):

<strong>PropertyFor</strong>
<p>@Html.PropertyFor(m => m.CurrentPage.RelatedPage)</p>

<strong>ContentLink</strong>
<p>@Html.ContentLink(Model.CurrentPage.RelatedPage)</p>

<strong>ContentUrl</strong>
<p>@Url.ContentUrl(Model.CurrentPage.RelatedPage)</p>

3. Create three new page instances of Article page type:

  • Article A
  • Article B
  • Article C

4. On Article A, set the value of new property added in step1 to point to Article B.

5. On Article A, edit property MainBody and add a link to Article B.

6. On Article B, Settings tab, locate property Shortcut, click Manage and select:

  • Shortcut type: shortcut to another content item
  • Open in: - (leave empty)
  • Internal Shortcut/Fetch Data from: Article C

7. Visit Article A, click Options and View on website (not in edit view).

Expected result: All links should point to Article C.
Actual result: Url.ContentUrl links to Article B instead of Article C.

Fix Version/s: EPiServer.CMS.Core 11.20.1;
Oct 27, 2020
CMS-16988
  Calling convention must be VarArgs exception thrown for properties on generic classes

ContentModelILCompiler throws an exception if an interceptable property is declared on a generic class.
Example: 

public class Content : BaseContent<int> { }
public abstract class BaseContent<TModel> : ContentData
{     public virtual bool Boolean \{ get; set; }
}

 
The thrown exception is an InvalidOperationException: "Calling convention must be VarArgs."

Fix Version/s: EPiServer.CMS.Core 11.20.1;
Oct 27, 2020
CMS-15213
  Typo in the documentation of Episerver.Framework.Cache.ReadStrategy.Wait
Issue Description

Fixed typo in meta document of the enum Episerver.Framework.Cache.ReadStrategy.Wait

Documentation says:
/// <summary>Will wait for pending updates to finish</summary>
/// <remarks>
/// <para>Typically used for scenarios where there is likely that several calls are done concurrent for an item
/// that is costly to load. In that case only one will perform the actual load while others will wait.
/// When the loading is done the waiting threads will be singnalled.</para>
/// <para>This option adds a marker object to the cache to signal that data is being loaded, do not use the same
/// cache key with other API's that do not take <see cref="T:EPiServer.Framework.Cache.ReadStrategy" /> since they will return the marker object
/// if called for example during a costly database operation.</para>
/// </remarks>

There is a spelling error in the paragraph for the word "singnalled", should be "signalled", also the word "concurrent" should be "concurrently".

Fix Version/s: EPiServer.CMS.Core 11.20.1;
Oct 26, 2020
CMS-16555
  Caching URL - Go to old url name

Steps to reproduce:
1. Open a page, e.g. Alloy Track > Edit 'Name in URL' > Publish it
2. Go to view mode > Click the page link on Navigation bar
Expected: It goes to the page with the updated name in url
Actual: It shows the error: "HTTP Error 404.0 - Not Found". It still goes to the old url name.
More details, please view the video.

Fix Version/s: EPiServer.CMS.Core 11.20.0;
Oct 08, 2020
CMS-16389
  Change order of Content Type properties in admin mode throws error

Version information:
EPiServer.CMS.Core 11.16.0
EPiServer.CMS.UI 11.25.0
EPiServer.Find 13.2.7

Steps to Reproduce
  1. Use an Alloy site with above versions
  2. Login and go to admin mode, Content Types tab and click on any page in Page Types. Click on Arrow Symbols.
    Expected: You can move properties up and down.
    Actual: Below error is thrown, if not detailed it gives a 500 error.
[NullReferenceException: Object reference not set to an instance of an object.]
   ASP.episerver_cms_admin_editcontenttype_aspx.__DataBind__control43(Object sender, EventArgs e) in D:\VSProjects\AlloyFind\EPiServer\CMS\Admin\EditContentType.aspx:133
   System.Web.UI.Control.OnDataBinding(EventArgs e) +84
   System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +150
   System.Web.UI.Control.DataBind() +17
   System.Web.UI.Control.DataBindChildren() +185
   System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +160
   System.Web.UI.Control.DataBind() +17
   System.Web.UI.WebControls.Repeater.CreateItem(Int32 itemIndex, ListItemType itemType, Boolean dataBind, Object dataItem) +126
   System.Web.UI.WebControls.Repeater.AddDataItemsIntoItemsArray(IEnumerable dataSource, Boolean useDataSource) +217
   System.Web.UI.WebControls.Repeater.PostGetDataAction(IEnumerable dataSource) +71
   System.Web.UI.WebControls.Repeater.CreateControlHierarchy(Boolean useDataSource) +220
   System.Web.UI.WebControls.Repeater.OnDataBinding(EventArgs e) +62
   System.Web.UI.WebControls.Repeater.DataBind() +77
   EPiServer.UI.Admin.EditContentType.SetPropertyInfo(IEnumerable`1 props) +65
   EPiServer.UI.Admin.EditContentType.UpdatePropertyDefinitionFieldOrder(Int32 propertyDefinitionId, Boolean increase) +566
   EPiServer.UI.Admin.EditContentType.MoveUp_Click(Object sender, CommandEventArgs e) +57
   System.Web.UI.WebControls.ImageButton.OnCommand(CommandEventArgs e) +111
   System.Web.UI.WebControls.ImageButton.RaisePostBackEvent(String eventArgument) +182
   System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +12
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +15
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1639
Customer Impact Statement

Customer reporting consider this urgent since this cannot be used within the admin mode.

* Please see Zendesk Support tab for further comments and attachments.

Fix Version/s: EPiServer.CMS.Core 11.20.0;
Oct 08, 2020
CMS-16315
  Item of PropertyLinkCollection is not exportable.

1- Create a page of content type that has PropertyLinkCollection property
2- Added media item (not from content asset) to the property (PropertyLinkCollection)
3- Export / import the page
4- The Medias should be followed export.

Fix Version/s: EPiServer.CMS.Core 11.20.0;
Oct 07, 2020
CMS-16332
  Improve XhtmlString/ContentArea memory usage

XhtmlString/ContentAre consumed considerably more memory than they were actually storing. Sites with large amount of content could have unnecessary memory usage.

Fix Version/s: EPiServer.CMS.Core 11.20.0;
Oct 07, 2020
CMS-16577
  Content Types should be sorted by SortOrder and then Alphabetically

Steps to reproduce:

  1. Create few page types with same order. CPage1, BPage2, APage1
  2. Go to Edit Mode and click New Page

Expected: Pages should be sorted Alphabetically.

https://stash.ep.se/projects/HA/repos/cmscore/browse/src/EPiServer/DataAbstraction/Internal/DefaultContentTypeAvailablilityService.cs#191

Probably can be implemented as:

Unable to find source-code formatter for language: csharp. Available languages are: actionscript, ada, applescript, bash, c, c#, c++, cpp, css, erlang, go, groovy, haskell, html, java, javascript, js, json, lua, none, nyan, objc, perl, php, python, r, rainbow, ruby, scala, sh, sql, swift, visualbasic, xml, yaml
.OrderBy(c => SortByGroupDefinition(c)).ThenBy(ct => ct.SortOrder).ThenBy(ct => ct.Name)
Fix Version/s: EPiServer.CMS.Core 11.20.0;
Oct 07, 2020
CMS-16931
  NullReferenceException or EntryPointNotFoundException thrown with IL generated content models with CMS 11.19

Client has upgraded CMS from 11.17.0 -> 11.19.0. They have never deployed with 11.18.x.

Site starts up fine and they can login but when the browse any page they receive the following exception. (Scroll below exception to see what fixes it)

[NullReferenceException: Object reference not set to an instance of an object.]
x.y.z.Catalog.SKUContent_DynamicProxy.MakeReadOnly() +1184
EPiServer.Construction.Internal.ContentFactory.CreateContent(ContentType contentType, BuildingContext buildingContext) +351
EPiServer.Commerce.Catalog.Provider.Construction.Internal.CatalogContentFactory.CreateContent(ContentType contentType, BuildingContext buildingContext) +182
EPiServer.Commerce.Catalog.Provider.Construction.MetaClassContentFactory.Create(Type type, String language, Nullable`1 catalogId) +315
EPiServer.Commerce.Catalog.Provider.Construction.MetaClassContentFactory.Create(String baseEntryType, Int32 metaClassId, String language, Nullable`1 catalogId) +272
EPiServer.Commerce.Catalog.Provider.Construction.EntryBuilder.GetCatalogContent(String entryType, Int32 metaClassId, String language, Int32 catalogId) +68
EPiServer.Commerce.Catalog.Provider.Construction.<>c__DisplayClass8_0.<ConstructEntries>b__0(CatalogEntryRow x) +96
System.Linq.WhereSelectEnumerableIterator`2.MoveNext() +234
System.Linq.WhereEnumerableIterator`1.MoveNext() +245
System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +452
System.Linq.Enumerable.ToList(IEnumerable`1 source) +72
EPiServer.Commerce.Catalog.Provider.Construction.EntryBuilder.ConstructEntries(CatalogEntryDto entryDto, IDictionary`2 versionsForUnpublishedContent, IDictionary`2 primaryNodeRelations, String language) +359
EPiServer.Commerce.Catalog.Provider.Construction.EntryBuilder.Create(IList`1 contentLinks, String language) +879
EPiServer.Commerce.Catalog.Provider.CatalogContentLoader.ConstructContent(IList`1 contentLinks, Func`3 createContentFunc) +538
EPiServer.Commerce.Catalog.Provider.CatalogContentLoader.LoadSpecificContentInstances(IList`1 contentLinks, String language) +331
EPiServer.Commerce.Catalog.Provider.CatalogContentProvider.BatchLoad(IList`1 contentLinks, Func`2 dbLoader) +246
EPiServer.Commerce.Catalog.Provider.CatalogContentProvider.LoadContents(IList`1 contentReferences, ILanguageSelector selector) +779
EPiServer.Commerce.Catalog.Provider.CatalogContentProvider.LoadContent(ContentReference contentLink, ILanguageSelector languageSelector) +224
EPiServer.Core.<>c__DisplayClass121_0.<LoadContentFromCacheOrRepository>b__0() +34
EPiServer.Framework.Cache.ObjectInstanceCacheExtensions.ReadThroughWithWait(IObjectInstanceCache cache, String cacheKey, Func`1 readValue, Func`2 evictionPolicy) +1035
EPiServer.Core.Internal.ContentInstanceCache.ReadThrough(ContentReference contentLink, String selectedLanguage, Func`1 readValue) +107
EPiServer.Core.ContentProvider.LoadContentFromCacheOrRepository(ContentReference contentreference, ILanguageSelector selector) +617
EPiServer.Core.Internal.ProviderPipelineImplementation.GetItem(ContentProvider provider, ContentReference contentLink, LoaderOptions loaderOptions) +327
EPiServer.Core.Internal.DefaultContentLoader.TryGet(ContentReference contentLink, LoaderOptions loaderOptions, T& content) +577
EPiServer.Core.Html.StringParsing.ContentFragment.GetContent(Boolean enableMasterLanguageFallback) +203
EPiServer.Core.Html.StringParsing.ContentFragment.GetSecurityDescriptor() +33
EPiServer.Core.ContentAreaItem..ctor(ContentFragment fragment) +55

 

But adding the following app setting fixes it

<add key="episerver:setoption:EPiServer.Core.ContentOptions.ProxyType,EPiServer" value="Castle" />
Fix Version/s: EPiServer.CMS.Core 11.20.0;
Oct 07, 2020
1 2 3 4 5 6 Next