2016-07-11 7 views
0

Ich entwickle ein SharePoint-Add-In über Azure-App-Services (zur Verwendung in einer Sharepoint Online [Office 365] -Umgebung). Ich versuche einen Site Manager für bestimmte Zwecke zu erstellen. Ich habe das Add-In veröffentlicht und kann meine ASP.Net-Seite erreichen. Ich verwende die Microsoft.Sharepoint-Bibliothek (von NuGet). Wenn ich versuche, die Site hinzuzufügen, erhalte ich folgende Fehlermeldung:Hinzufügen von Websites zu SharePoint Online aus ASP.NET-Fehlern

Could not load file or assembly 'Microsoft.SharePoint.Library, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies. The system cannot find the file specified.

Dies ist der Code hinter ich verwende:

public void AddWebsite(string siteUrl, string title) 
{ 
    using (SPSite site = new SPSite(siteUrl)) 
    { 
     string parentWebName = ""; //here I set the parent webname (left in blank for now) 

     using (SPWeb parentWeb = site.OpenWeb(parentWebName)) 
     { 
      string webTitle = title; 
      string webDesc = "This site is created by ... | SiteName: " + title; 

      Regex rgx = new Regex("[^a-zA-Z0-9 -]"); 
      string webName = rgx.Replace(title, ""); 

      string webUrl = String.Format("{0}/{1}", parentWebName, webName); 
      uint webLcid = parentWeb.Language; 

      string webTemplateName = "STS#2"; 

      SPWeb newWeb = null; 

      try 
      { 
       newWeb = site.AllWebs.Add(webUrl, webTitle, webDesc, webLcid, webTemplateName, false, false); 
      } 
      catch (ArgumentException ex) 
      { 
       Console.WriteLine(ex.Message); 
      } 

      if (newWeb != null) 
      { 
       newWeb.Navigation.UseShared = true; 

       SPNavigationNode node = new SPNavigationNode(newWeb.Title, newWeb.ServerRelativeUrl); 

       bool parentInheritsTopNav = newWeb.ParentWeb.Navigation.UseShared; 

       if (parentInheritsTopNav) 
        site.RootWeb.Navigation.TopNavigationBar.AddAsLast(node); 
       else 
        newWeb.ParentWeb.Navigation.TopNavigationBar.AddAsLast(node); 

       newWeb.Dispose(); 
      } 
     } 
    } 
} 

Kann mir jemand sagen, was ich bin falsch machen?

Antwort

0

Erweitern Sie den Referenzordner im Visual Studio, wählen Sie die Assembly "Microsoft.SharePoint.Library" und drücken Sie F4 und ändern Sie den Wert von Copy Local in true.

+0

In allen Verweisen ist die lokale Kopieroption auf true festgelegt. Es ist wie Microsoft.SharePoint.Library ist kein Teil der Microsoft.SharePoint DLL. –

+0

Ich habe diese DLL noch nie gesehen, verwenden Sie sie? –

+0

Nein, ich denke, es ist eine Abhängigkeit für die Microsoft.SharePoint DLL. Mein Code tut nichts mehr als in meiner Frage beschrieben. –