' Microsoft.Online.SharePoint.TenantAdministration.SpoOperation'违反了类型参数' T'的约束。

时间:2014-05-07 19:06:03

标签: c# xml sharepoint csom

我正在尝试创建一个sharepoint应用程序来配置网站集,我下载了最新的sharepoint客户端sdk,实际上我的代码与第9频道SPC3999 Rob Howard的代码相同。

http://channel9.msdn.com/Events/SharePoint-Conference/2014/SPC3999 (检查前20分钟)

所以,我的VS 2013发生了一些非常奇怪的事情。 我在按钮单击的第一行放了一个断点,但是调试器没有在那里停止,但是在帖子标题上调用了错误代码。

 protected void btnCreate_Click(object sender, EventArgs e)
        {
            Uri tenantadminUrl = new Uri("https://xxx-admin.sharepoint.com");

            string accessToken = TokenHelper.GetAppOnlyAccessToken(
                TokenHelper.SharePointPrincipal,
                tenantadminUrl.Authority,
                TokenHelper.GetRealmFromTargetUrl(tenantadminUrl)).AccessToken;

            var newSite = new SiteCreationProperties()
            {
                Url="https://xxx.sharepoint.com/sites/" + txtName.Text,
                Owner= txtOwner.Text,
                Template="STS#0",
                Title = "App provisioned site" + txtName.Text,
                StorageMaximumLevel = 1000,
                StorageWarningLevel = 500,
                TimeZoneId = 7,
                UserCodeMaximumLevel =7,
                UserCodeWarningLevel=1

            };

            using(var clientContext=TokenHelper.GetClientContextWithAccessToken(tenantadminUrl.ToString(), accessToken))
            {
                var tenant = new Tenant(clientContext);
                var spoOperation = tenant.CreateSite(newSite);
                clientContext.Load(spoOperation);
                clientContext.ExecuteQuery();
            }

        }

2 个答案:

答案 0 :(得分:1)

这在文档中并不清楚,但实际上客户端sdk dll在这里:

C:\ Program Files \ SharePoint Client Components \ 16.0 \ Assemblies

然后它有效!

答案 1 :(得分:1)

感谢您的回复。我正在让我们的MSDN内容发布者更新API上的页面以使其更清晰。如果您使用的是Office平台的最新开发人员工具,则应该获得DLL的两个版本,当您添加程序集时,您将看到可以在两个版本之间进行选择。默认情况下,应用程序将添加v16。