To be able to access, browse and control how add-ons are installed via the Add-On Store, there are some config settings you need to be familiar with.
Enabling the Add-On Store menu item
PackagingAdminsgroup, which actually is a built-in virtual role.
PackagingAdminsis not assigned to anyone by default, so go ahead and add it manually to the
<episerver.framework>section of your web.config (or episerver.framework.config, if your config is split into separate files):
<episerver.framework> <virtualroles> <add name="PackagingAdmins" type="EPiServer.Security.MappedRole, EPiServer.Framework" roles="WebAdmins, Administrators" mode="Any" /> </virtualRoles> </episerver.framework>
Administratorswill also become members of the
PackagingAdminsvirtual role. This will make the Add-Ons menu item visible in the global menu.
Installing Add-Ons from code or via UI
PackagingAdmins), they had access to both browse and install available add-ons.
installationModeattribute can be found in the
<episerver.packaging>section of your config file.
<episerver.packaging installationMode="UI" />
- The user is allowed to browse and install add-ons (including manual upload).
- The Add-On Store will still probe the site for add-ons installed from code (via Visual Studio). These will show up in the Installed section of the Store, but it's not guaranteed that operations like disable or uninstall will work.
<episerver.packaging installationMode="Code" />
- All add-ons must be installed as nuget packages in Visual Studio, and then be deployed with the rest of the site.
- The main advantage of this mode is ensuring that the code repository contains all Add-Ons in use on the site (and thus testable before deployment to a live environment).
- In some environments, such as load-balanced servers or Microsoft Azure, deploying Add-Ons from code is the only option that works.
- In this mode, the user will be notified that he's only allowed to browse.
Default Episerver Add-On repositories
- EPiServerAddOns - official and supported add-ons by Episerver
- EPiServerBetaAddOns - add-ons under development, provided unsupported and as-is
- ThirdPartyAddOns - add-ons provided and supported by a third party developer
<packagingRepositories>section in your config file:
<episerver.packaging> <packageRepositories> <clear /> <!-- will remove ALL repositories --> <remove name="EPiServerBetaAddOns" /> <!-- will remove a specific repository --> </packageRepositories> </episerver.packaging>
Custom Add-On repositories
<episerver.packaging> <packageRepositories> <add name="MyCustomFeed" url="https://nuget.mydomain.com/feed/myaddons.svc" /> </packageRepositories> </episerver.packaging>
You could even filter the feed on specific tags, to avoid showing the whole feed, using the
<episerver.packaging> <packageRepositories> <add name="MyCustomFeed" url="https://nuget.mydomain.com/feed/myaddons.svc" filterTag="myTag"/> </packageRepositories> </episerver.packaging>
The results would be similar to a filtered search in the official Episerver nuget feed.
Troubleshooting: "No add-ons are available"
- Your user is in the
installationModeattribute is set to "UI" in the
- You haven't disabled the default Episerver add-on repositories in the
- Your server is able to ping the official Episerver nuget feed at http://nuget.episerver.com/feed/packages.svc/
Episerver.Packaging.Configuration.EPiServerPackagingSectionnamespace in the
Episerver.Packagingassembly, and found the following:
<packageRepositories> <remove name="EPiServerAddOns" /> <add name="EPiServerAddOns" url="http://nuget.episerver.com/feed/packages.svc/" filterTag="EPiServerAddOn"/> </packageRepositories>
Episerver.Packagingis initializing from https://nugetaddons.episerver.com/feed/Addons.svc.