0

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!!!

4 Answers 4

1

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
0

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

0

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

0

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.");
     }
 }

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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