从 ASP.NET 将网站添加到 SharePoint Online 失败
Posted
技术标签:
【中文标题】从 ASP.NET 将网站添加到 SharePoint Online 失败【英文标题】:Adding sites to SharePoint Online from ASP.NET failes 【发布时间】:2016-11-13 15:38:58 【问题描述】:我正在通过 Azure 应用服务开发一个 SharePoint 加载项(用于在 Sharepoint Online [Office 365] 环境中使用)。我正在尝试为某些人创建一个站点管理器。我已经发布了加载项并且可以访问我的 ASP.Net 页面。我正在使用 Microsoft.Sharepoint 库(来自 NuGet)。当我尝试添加网站时,出现以下错误:
无法加载文件或程序集“Microsoft.SharePoint.Library, 版本=15.0.0.0,文化=中性,PublicKeyToken=71e9bce111e9429c' 或 它的依赖项之一。系统找不到指定的文件。
这是我正在使用的代码:
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();
谁能告诉我我做错了什么?
【问题讨论】:
【参考方案1】:在 Visual Studio 中展开参考文件夹,选择程序集“Microsoft.SharePoint.Library”并按 F4,然后将 Copy Local 的值更改为 true。
【讨论】:
所有引用都将复制本地选项设置为 true。就像 Microsoft.SharePoint.Library 不是 Microsoft.SharePoint DLL 的一部分。 我没见过这个DLL,你在用吗? 不,我认为它依赖于主要的 Microsoft.SharePoint DLL。我的代码只做我的问题中描述的事情。以上是关于从 ASP.NET 将网站添加到 SharePoint Online 失败的主要内容,如果未能解决你的问题,请参考以下文章
保存对话框以下载文件,将文件从 ASP.NET 服务器保存到客户端
如何将 AzureAD 和 AzureADBearer 添加到 asp.net core 2.2 web api