Ben  McKernan
Jan 8, 2018
  9974
(7 votes)

Issue with modules not being found in CMS 11

Hello everyone! I want to quickly address the issues around add-on modules not being found after upgrading to CMS 11 before misinformation starts to spread. Marija mentioned some of these issues in her previous blog post http://mariajemaria.net/upgraded-several-packages-episerver-11 and there have been some questions on the forum.

The problem usually manifests itself as either an assembly not being found at runtime or a route not resolving correctly in the UI.

It is caused by the following, and I'm not sure if this is a breaking change but as far as I know it has not been documented (I will have the breaking changes document updated in any case). As part of the CMS 11 release the dependencies of the EPiServer.CMS nuget package were changed to no longer include EPiServer.Packaging.UI, you can compare the versions here:

http://nuget.episerver.com/en/OtherPages/Package/?packageId=EPiServer.CMS&packageVersion=11.1.0

http://nuget.episerver.com/en/OtherPages/Package/?packageId=EPiServer.CMS&packageVersion=10.10.4

For some reason, unknown to me, having EPiServer.Packaging installed changes the default behavior of the modules system to scan the protected modules folder and automatically load modules found there during startup. The default behavior without it installed is not to scan the protected modules folder. However this can be configured via the episerver.shell section of the web.config.

So there are a couple of easy options to fix this, either:

1. Add autoDiscovery="Modules" to the protectedModules element under episerver.shell in the web.config

<protectedModules rootPath="~/EPiServer/" autoDiscovery="Modules />

2. Or add each protected module that should be loaded as a child to the protectedModules element (this is the default setup)

<protectedModules rootPath="~/EPiServer/">
  <add name="Shell" />
  <add name="CMS" />
  <add name="EPiServer.Cms.TinyMce" />
</protectedModules>

Also as a side note, I recommend against installing EPiServer.Packaging. The recommended way of installing add-ons is via nuget.

Jan 08, 2018

Comments

Marija Jemuovic
Marija Jemuovic Jan 8, 2018 03:00 PM

Thx a lot, Ben! Will update my post promptly :)

Vincent Baaij
Vincent Baaij Jan 8, 2018 04:01 PM

Too bad EPiServer Social Reach has a dependency on EPiServer.Packaging. Do you know why that is?

Ben  McKernan
Ben McKernan Jan 8, 2018 04:54 PM

@Marija great thanks!

@Vincent I'm not sure why they have a dependency on packaging. I don't like being pessimistic but it probably is because they didn't know how the module resolving worked and having packaging installed fixed the problems described in this post.

I should also mention that episerver add-ons usually add themselves to that protected modules list when installing the nuget package. This is done via a web.config transform.

David Elias
David Elias Jan 8, 2018 06:02 PM

There are actually a lot things that have a dependency on EPiServer.Packaging.  Out of curriosity, I just tried to remove it and have 4 other packages that all have a dependency on it.

Cathinka Walberg
Cathinka Walberg Aug 15, 2018 10:45 AM

Hi! We are struggling with XForms not loading. This most likely started after we upgraded to Episerver 11.
Other modules like TinyMCE are loading correctly.

In edit mode the XForm property is shown as a textarea with the forms guid, whilst when rendering it only shows the text "EPiServer.XForms.XForm". I opened this issue yesterday: https://world.episerver.com/forum/legacy-forums/episerver-cms-7-and-earlier-versions/thread-container/2018/8/xforms-not-rendering-in-a-solution-upgraded-to-11/?pageIndex=1#reply

The web.config looks like this:

    
      
        
          
          
          
          
        
      
      
      
      
      
      
    

Does anyone have any pointers?

Goran Solomonovic
Goran Solomonovic Aug 9, 2019 07:47 AM

I had issues with Episerver.Forms.Core dll when initializing site. Had to add following in my web.config:

<protectedModules rootPath="~/EPiServer/">
	<add name="EPiServer.Forms.UI">
           <assemblies>
               <add assembly="EPiServer.Forms.Core" />
           </assemblies>
       </add>
</protectedModules>

Error for reference: Unable to find module by assembly 'Episerver.Forms, Version=4.25.0.0, Culture=neutral, PublicKeyToken=8fe83dea738b45b7'

Please login to comment.
Latest blogs
Enhance Your Writing with Suggestions

Are you tired of staring at a blank screen, struggling to find the right words? The Epicweb.Optimizely.AIAssistant Addon is here to revolutionize...

Luc Gosso (MVP) | May 31, 2023 | Syndicated blog

Content Graph - Letting GraphQL do all the hard work for you

Background As we have seen before, setting up Content Graph on the CMS side is pretty easy. However, when it comes to the “head” part of the setup,...

Kunal Shetye | May 26, 2023 | Syndicated blog

Improved headless functionality in Customized Commerce

Did you know that with the release of Content Delivery Commerce API 3.7 we have massively improved the out of the box headless capabilities of...

Marcus Hoffmann | May 25, 2023

Boost Your Productivity with the AI Assistant Addon for Optimizely Content Cloud

In today's fast-paced digital world, efficiency and convenience are paramount. That's why we're excited to introduce the Optimizely AI-Assistant...

Luc Gosso (MVP) | May 25, 2023 | Syndicated blog

Swapcode.Optimizely.AuditLog updated to v1.4.1

If you are using my audit log add-on Swapcode.Optimizely.AuditLog then I suggest that you update it in your solution. I've been waiting now for few...

Antti Alasvuo | May 20, 2023

The Web Project Podcast: Episode 19: Implement the Design (w/ Ethan Marcotte)

Corey and Deane talk about how front-end development has evolved past the early days. Then, Ethan Marcotte, author of Responsive Web Design and...

Corey Vilhauer | May 16, 2023 | Syndicated blog