Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

I am trying to create one App for sharepoint 2013 publishing site. I can not see Apps catalog from where I can upload an app to the publishing site. On the other hand, if I see in developer site, I have that option available.

Is there any way we can get the "apps in testing" feature enabled in publishing site as well???

Or what is the alternate to upload the app to publishing site?**

Thanks in advance!!!

share|improve this question

migrated from stackoverflow.com Mar 27 '13 at 16:01

This question came from our site for professional and enthusiast programmers.

4 Answers 4

You will need to enable the "Developer Feature" on your publishing site. It is a hidden feature so you can't enable it through the UI. Use the following PowerShell script:

Enable-SPFeature e374875e-06b6-11e0-b0fa-57f5dfd72085 –url http://your.site.com
share|improve this answer

You need to create an app catalog site collection in your web application. This is where you will upload published apps. Once you have created the catalog, and uploaded the app to it, go back to your publishing site, go to Add an App. You will then see a filter for 'From your Organization.' You can select it for your publishing site then.

See this article for how to create the app catalog site collection:

http://msdn.microsoft.com/en-us/library/fp123530.aspx

share|improve this answer

The right approach is to install the app in the App catalogue of your webapplication and then when you click on add an app it will available for launching from your site

share|improve this answer

The only prerequisite for installing App into Publishing site, to activate Developer Feature (e374875e-06b6-11e0-b0fa-57f5dfd72085).

How to install App using SharePoint CSOM

The following class demonstrates how to:

  • ensure Developer Feature is activated
  • deploy App

Example:

public class SPAppManager
{
    /// <summary>
    /// Deploy SP App 
    /// </summary>
    /// <param name="context">Client context</param>
    /// <param name="appFullPath">Full path to app file (.app)</param>
    /// <returns></returns>
    public static AppInstance Deploy(ClientContext context, string appFullPath)
    {
        EnsureDeveloperFeature(context);
        using (var packageStream = System.IO.File.OpenRead(appFullPath))
        {
            var appInstance = context.Web.LoadAndInstallApp(packageStream);
            context.Load(appInstance);
            context.ExecuteQuery();
            return appInstance;
        }
    }


    /// <summary>
    /// Ensure Developer Feature 
    /// </summary>
    /// <param name="ctx"></param>
    private static void EnsureDeveloperFeature(ClientContext ctx)
    {
        var result = ctx.LoadQuery(ctx.Site.Features.Where(f => f.DefinitionId == DeveloperFeatureId));
        ctx.ExecuteQuery();
        if (result.Any()) return;
        var feature = ctx.Site.Features.Add(DeveloperFeatureId,true, FeatureDefinitionScope.None);
        ctx.ExecuteQuery();
    }


    private static readonly Guid DeveloperFeatureId = new Guid("e374875e-06b6-11e0-b0fa-57f5dfd72085");
} 

Usage

 using (var ctx = GetContext(webUri,userName,password))
 {
     var appInstance = SPAppManager.Deploy(ctx, @"C:\Packages\SPApp.app");
     if (appInstance != null && appInstance.Status == AppInstanceStatus.Initialized)
     {
        Console.WriteLine("App was installed.");
     }
 }
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.