我想通过.Net Core MVC应用程序上的CSOM库从SharePoint列表中获取数据。在.Net Framework应用程序上实现这一点绝对没有问题,因为Microsoft.SharePoint.Client库包含ExecuteQuery方法。不幸的是.Net Core相当于没有。
我已经制作了异步功能
public async Task<ActionResult> GetRequests()
{
ClientContext context = new ClientContext("https://xxx/sites/xxx/");
List certificatesList = context.Web.Lists.GetByTitle("Items");
CamlQuery query = CamlQuery.CreateAllItemsQuery(100);
ListItemCollection items = certificatesList.GetItems(query);
context.Load(items);
Task spTask = context.ExecuteQueryAsync();
await Task.WhenAll(spTask);
var result = items;
...
}
但它似乎也不会在.Net Core上工作,因为它会抛出
抛出异常:&#39; System.InvalidOperationException&#39;在&gt; System.Private.CoreLib.ni.dll
中其他信息:找不到平台服务库。对于 Windows Store应用程序,请包含 Microsoft.SharePoint.Client.Runtime.WindowsStore.dll中 应用程序包。对于Windows Phone应用程序,请包含 Microsoft.SharePoint.Client.Runtime.WindowsPhone.dll中 应用程序包。对于Windows应用程序,请安装 GAC中的Microsoft.SharePoint.Client.Runtime.Windows.dll(全局 程序集缓存)或使其可用于Windows应用程序。
有人在.Net Core中使用CSOM,还是应该使用REST Api?
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
}
答案 0 :(得分:0)
我遇到了这个问题。由于某些原因,当您引用Microsoft.SharePointOnline.CSOM nuget程序包时,它使用.net框架dll而不是netcore45 dll。 这是我为解决此问题所做的事情:
引用正确的程序集
netcore45 \ Microsoft.SharePoint.Client.Portable.dll netcore45 \ Microsoft.SharePoint.Client.Runtime.Portable.dll net45 \ Microsoft.SharePoint.Client.Runtime.Windows.dll netcore45 \ Microsoft.SharePoint.Client.Runtime.WindowsStore.dll
哦,如果您已经有了该nuget软件包,请对其进行卸载。