我无法在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()
答案 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.0
)netcoreapp2.0
将包含MSBuild
组件,而不是便携式一个net45
标签的。