Press "Enter" to skip to content

Deploying and debugging SharePoint Apps – Sideloading the easy way

If you try to deploy an App from Visual Studio to anything other than a developer site you will get this error:

“Error occurred in deployment step ‘Install app for SharePoint’: Sideloading of apps is not enabled on this site.”

This is due to a feature that is not enabled on any other site template apart from the Developer Site. This error will also occur if you are deploying to a host named site collection that is not at the root of the web application. You will also get this when you are deploying to a site in Office 365 that is not a Developer Site.

You might be developing a solution and you may want to deploy it to a site that is not a Developer Site.

To enable this for on-premises environments, run this PowerShell script:

Enable-SPFeature -Identity AE3A1339-61F5-4f8f-81A7-ABD2DA956A7D–url <siteurl>

To enable this on Office 365 sites you should use the client-side object model. Here is an example:

   1: $siteCollectionUrl = ""
   2: $username = ""
   3: $password = ""
   4: [Microsoft.SharePoint.Client.ClientContext]$context = New-Object Microsoft.SharePoint.Client.ClientContext($siteCollectionUrl)
   5: [Microsoft.SharePoint.Client.SharePointOnlineCredentials]$credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $password)
   6: $context.Credentials = $credentials
   7: $siteCollection = $cc.Site;
   8: $sideLoadingGuid = new-object System.Guid "AE3A1339-61F5-4f8f-81A7-ABD2DA956A7D"
   9: $siteCollection.Features.Add($sideLoadingGuid, $true, [Microsoft.SharePoint.Client.FeatureDefinitionScope]::None);
  10: $context.ExecuteQuery();

The only thing that this feature does is “register” itself as an activated feature on the site. You can check the event receiver, it does nothing but checks.

Here is a piece of the Microsoft SharePoint code that actually checks if sideloading is enabled:

   1:internalstaticbool IsAppSideloadingEnabled(SPSite site)
   2: {
   3:if (site == null)
   4:     {
   5:thrownew ArgumentNullException("site");
   6:     }
   7:return SPDeveloperData.IsDeveloperSite(site) || site.Features[FeatureIds.EnableAppSideLoading] != null;
   8: }

This is performed in the API that VS uses to deploy Apps.

Hope this helps!