Khurram
Mar 14, 2014
visibility 11533
star star star star star
(3 votes)

EPiServer 7.6 Protected Site Add-Ons location.

Before EPiServer 7.6, the public Site Add-Ons have been placed at /modules/ under the site root and protected Add-Ons placed at ~/protectedModulesPath/Modules or appDataPath\Modules location. But with the release of 7.6, We’ve started streamlining the disk location for Site Add-Ons which means all the Site Add-Ons will be placed under the same root location (/modules/) regardless of the type of the Add-On.

We are making this decision because of a couple of reasons;
the first reason is that CMS, Shell and Add-On Store UI have been converted to NuGet packages so when Installing these packages from NuGet we need a place to put all the resources (aspx files, javascript resources, images etc.) to some path which we can find later (to upgrade these packages) without any surprises.
The second reason is that we want to recommend a standard location inside a deployed EPiServer site where all the third-party Add-On developers can happily put their resources and upgrade them later through NuGet or EPiServer Add-On store and it makes it simpler to reason about the location of every Add-On installed through Add-On store or NuGet specially when you’ve installed a lot of them. 

If you’ve already installed/upgraded to EPiServer 7.6 you’ll notice that the installation process has created a new folder /modules/_protected inside the site root. This is the new home for EPiServer protected Site Add-Ons. From now on, all the EPiServer developed protected modules will be placed under modules/_protected.

If you are upgrading from an older installation to release 7.6, the process will clean the folders CMS, Shell and CMS.Sources from old protected modules location (relevant dll files will also be deleted from /modulesbin/). And two new folders (CMS and Shell) will be created under /modules/_protected/ location. 

In the same way if you upgrade to EPiServer Add-On Store UI 3.1 (via Nuget), the installation will delete EPiServer.Packaging and EPiServer.Packaging.UI folders from current modules path and EPiServer.Packaging.UI folder will be created under /modules/_protected location.

EPiServer Add-On Store UI 3.1 package also introduces a new command let within the Visual Studio Package Manager Console. This command let will help you in moving all the current protected Add-Ons to new location. 
In order to run this command let, first you need to upgrade to new Add-On Store UI package through NuGet (Install-Package EPiServer.Packaging.UI). Once the process of installation completes, You can run Move-EPiServerProtectedModules in Package Manager Console (Tools --> Package Manager –> Package Manager Console) and it’ll move all the current protected modules to new location, it’ll also write the information in web.config and will delete the old folders.

Mar 14, 2014

Comments

Johan Book
Johan Book Oct 16, 2014 10:32 PM

Great article! So does this mean that modulesbin is now obsolete? I tried to remove modulesbin (which was empty) together with the probing element in web.config but got a YSOD saying "Probing path 'modulesbin' should be specified in web.config"... Should we point probing to modules instead?

Sep 7, 2018 05:27 PM

192.168.1.254

error Please login to comment.
Latest blogs
The Low-Level API Is Not Automatically Fast. Part 4: Counting Round Trips

The low-level Commerce DTO API is not automatically fast: counting the database round trips per imported row, and four fixes I would apply first.

Stanisław Szołkowski | Oct 21, 2026 |

The Migration Bugs That Actually Caught Us Out

The less obvious issues we hit migrating Optimizely CMS 11 to CMS 12 and .NET 8, including routing changes, JSON model binding, package dependency...

Dom Reilly | Oct 20, 2026 |

Camp Opticon 26 (London): AI requires a different operating model

Introduction Last week I attended Camp Opticon 26 in London and although it was far from my first time at Opticon, it was in fact my first time tha...

WilliamP | Oct 20, 2026

Migrating ContentArea.FilteredItems in Optimizely CMS 13

If you have

Adnan Zameer | Oct 19, 2026 |

Categories have landed in Optimizely SaaS CMS: structure, translate, tag and query

Categories arrived in Optimizely SaaS CMS at the end of August, with Graph support alongside. I have wanted a proper taxonomy in SaaS since the fir...

Minesh Shah (Netcel) | Oct 19, 2026

Exploring Cached Templates and Cursor Pagination in the Optimizely Graph C# SDK

While experimenting with the  Optimizely Graph C# SDK (13.3.0) in my local Optimizely CMS 13 Alloy project, I came across two interesting findings:...

Mardy | Oct 19, 2026