The below method is used to install the app in the sharepoint site programmatically using C#
InstallAppPart("http://sharepoint2013/site/","d:\\SampleApp\TestApp.app")
public void InstallAppPart(string WebURL, string AppFullPath)
{
Guid appId = Guid.Empty;
using(site = new SPSite(WebURL))
{
using(web = site.OpenWeb())
{
Stream package = null;
try
{
//This code is used to start installing the app
package = File.OpenRead(AppFullPath);
SPAppInstance appInstance = web.LoadAndInstallApp(package);
if (appInstance != null && appInstance.Status == SPAppInstanceStatus.Initialized)
{
//Your App is started installing now
appId = appInstance.Id;
}
//This code is used to check the app completeley installed in the sharepoint site
SPAppInstance newAppInstance = null;
int maxTry = 150;
int count = 0;
do
{
Thread.Sleep(1000);
newAppInstance = web.GetAppInstanceById(appId);
count++;
}
while (newAppInstance != null && newAppInstance.Status != SPAppInstanceStatus.Installed && count < maxTry);
if(newAppInstance != null && newAppInstance .Status == SPAppInstanceStatus.Installed)
{
Console.WriteLine("App installation complete. App URL:" + localInstance.AppWebFullUrl.ToString());
}
}
finally
{
if (package != null)
package.Close();
}
}
}
}
InstallAppPart("http://sharepoint2013/site/","d:\\SampleApp\TestApp.app")
public void InstallAppPart(string WebURL, string AppFullPath)
{
Guid appId = Guid.Empty;
using(site = new SPSite(WebURL))
{
using(web = site.OpenWeb())
{
Stream package = null;
try
{
//This code is used to start installing the app
package = File.OpenRead(AppFullPath);
SPAppInstance appInstance = web.LoadAndInstallApp(package);
if (appInstance != null && appInstance.Status == SPAppInstanceStatus.Initialized)
{
//Your App is started installing now
appId = appInstance.Id;
}
//This code is used to check the app completeley installed in the sharepoint site
SPAppInstance newAppInstance = null;
int maxTry = 150;
int count = 0;
do
{
Thread.Sleep(1000);
newAppInstance = web.GetAppInstanceById(appId);
count++;
}
while (newAppInstance != null && newAppInstance.Status != SPAppInstanceStatus.Installed && count < maxTry);
if(newAppInstance != null && newAppInstance .Status == SPAppInstanceStatus.Installed)
{
Console.WriteLine("App installation complete. App URL:" + localInstance.AppWebFullUrl.ToString());
}
}
finally
{
if (package != null)
package.Close();
}
}
}
}