Five New Optimizely Certifications are Here! Validate your expertise and advance your career with our latest certification exams. Click here to find out more

Khurram
Mar 14, 2014
  9421
(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

Please login to comment.
Latest blogs
COGNITIVE_SERVICE_TRANSLATE_ERROR

COGNITIVE_SERVICE_TRANSLATE_ERROR

Tomas Hensrud Gulla | Mar 19, 2025 |

Secure Your CMS: A Guide to the OptiAccess Restrictor Add-on

The OptiAccess Restrictor add-on enhances CMS security by preventing unauthorized access, allowing IP whitelisting.

Francisco Quintanilla | Mar 18, 2025 |

Optimizely CMS Developer Tools for macOS

Running Optimizely CMS on macOS presents unique challenges, as the platform was traditionally primarily designed for Windows environments. However,...

Tomek Juranek | Mar 15, 2025

Removing a Segment from the URL in Optimizely CMS 12 using Partial Routing

Problem Statement In Optimizely CMS 12, dynamically generated pages inherit URL segments from their container pages. However, in certain cases, som...

Adnan Zameer | Mar 14, 2025 |