Как получить все семейства сайтов с помощью C# CSOM
Мой код:
SPOSitePropertiesEnumerable spp = null;
Microsoft.Online.SharePoint.TenantAdministration.Tenant tenant = new Tenant(clientContext);
int startIndex = 0;
while (spp == null || spp.Count > 0)
{
spp = tenant.GetSiteProperties(startIndex, true);
clientContext.Load(spp);
clientContext.ExecuteQuery();
foreach (SiteProperties sp in spp)
{
Response.Write("<br/> All Sites Collection: " + sp.Title + "<br/>");
// siteCols.Add(new SiteCol(sp.Title, sp.Url));
// startIndex = siteCols.Count;
}
startIndex++;
}
Я получаю эту ошибку: Метод Microsoft.SharePoint.Client.ClientRuntimeContext.Load: аргумент типа 'Microsoft.Online.SharePoint.TenantAdministration.SPOSitePropertiesEnumerable' нарушает ограничение параметра типа 'T
Есть ли другой способ получить все семейства сайтов?
2 ответа
Ошибка:
Метод Microsoft.SharePoint.Client.ClientRuntimeContext.Load: аргумент типа "Microsoft.Online.SharePoint.TenantAdministration.SPOSitePropertiesEnumerable" нарушает ограничение параметра типа "T".
происходит из-за несоответствия между Microsoft.Online.SharePoint.Client.Tenant.dll
сборка и Microsoft.SharePoint.Client.dll
версии сборки, на которые есть ссылки в проекте.
Microsoft выпустила следующие SDK:
- SDK клиентских компонентов SharePoint Online:
Microsoft.Online.SharePoint.Client.Tenant.dll
сборка версия 16 (C:\Program Files\SharePoint Client Components\16.0\Assemblies
) поставляется с этим SDK - SDK клиентских компонентов SharePoint Server 2013:
Microsoft.Online.SharePoint.Client.Tenant.dll
сборка версия 15 (C:\Program Files\SharePoint Client Components\Assemblies
) поставляется с этим SDK
разрешение
Убедитесь в правильности версии Microsoft.Online.SharePoint.Client.Tenant.dll
сборка ссылается.
Например, для проекта SharePoint Online необходимо указать следующую сборку: Microsoft.Online.SharePoint.Client.Tenant, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c
Тип ( см.):
Install-Package Microsoft.Sharepoint.2013.Client.16