无法访问.net核心中的共享点库

时间:2018-03-16 09:57:47

标签: sharepoint .net-core

我无法在Sharepoint上传文件。我使用的是Microsoft.SharePointOnline2016.CSOM v16.0。

public static void UploadDocumentContent(ClientContext ctx, string libraryName)
{
     List oList = ctx.Web.Lists.GetByTitle(libraryName);
     ctx.Load(oList.RootFolder);
     ctx.Load(oList.Fields);
     try
     {
          ctx.ExecuteQuery();
     }
     catch (Exception ex)
     {

     }
}

我在错误后收到错误。

System.Net.WebException: The remote server returned an error: (400) Bad Request.
   at System.Net.HttpWebRequest.GetResponse()
   at Microsoft.SharePoint.Client.SPWebRequestExecutor.Execute()
   at Microsoft.SharePoint.Client.ClientContext.GetFormDigestInfoPrivate()
   at Microsoft.SharePoint.Client.ClientContext.EnsureFormDigest()
   at Microsoft.SharePoint.Client.ClientContext.ExecuteQuery()

2 个答案:

答案 0 :(得分:1)

.NET Core不支持本机SharePoint CSOM。

UserVoice - Support .NET Core with CSOM

根据上述链接,Microsoft正在考虑提供对.NET Core的支持。因此,将来某个时候将得到支持(没有提供ETA)。

话虽如此,您可以查看PnP CSOM,它是Native CSOM的包装器。它适用于.NET标准。

Nuget - SharePointPnPCoreOnline - SharePoint PnP Core library for SharePoint Online

答案 1 :(得分:0)

我在网上发现了这篇文章:http://rajujoseph.com/getting-net-core-and-sharepoint-csom-play-nice/

它仍然是一个黑客,但它的工作原理。仅供参考,文章最后提到的Microsoft.SharePoint.Client.Runtime.Windows.dll可以在NuGet包的net45子文件夹中找到。

有趣的是,如果我们只能在TargetFramework文件的PackageReference元素中指定csproj属性,那么整个事情就会有效。因为CSOM NuGet包显然是以portable-net45-netcore45-wpa81 TFM为目标。但是,当包含在PackageReference定位csproj(或netstandard2.0netcoreapp2.0将包含MSBuild组件,而不是便携式一个net45标签的。