在SharePoint 2013中通过csom更改站点徽标

在SharePoint 2013中通过csom更改站点徽标,sharepoint,sharepoint-2013,csom,Sharepoint,Sharepoint 2013,Csom,关于这个问题 如何将站点徽标更改为新徽标 甚至可以通过CSOM从控制台应用程序执行此操作吗?看起来客户端对象模型中没有与常规对象模型中的站点徽标挂钩。(site.RootWeb.SiteLogoUrl=pictureUrl;)我找不到使用CSOM的方法,但您可以使用事件接收器创建一个新的网站集范围(适用于SharePoint Online)功能,并将其部署为解决方案。它为我工作,并节省了我手动更新380个网站。我让FeatureActivated方法递归地在网站集的根网站和所有子网站上设置徽标。

关于这个问题

如何将站点徽标更改为新徽标


甚至可以通过CSOM从控制台应用程序执行此操作吗?

看起来客户端对象模型中没有与常规对象模型中的站点徽标挂钩。(
site.RootWeb.SiteLogoUrl=pictureUrl;

我找不到使用CSOM的方法,但您可以使用事件接收器创建一个新的网站集范围(适用于SharePoint Online)功能,并将其部署为解决方案。它为我工作,并节省了我手动更新380个网站。我让FeatureActivated方法递归地在网站集的根网站和所有子网站上设置徽标。代码如下:

public class Feature1EventReceiver : SPFeatureReceiver
{

    public override void FeatureActivated(SPFeatureReceiverProperties properties)
    {
        SPSite site = properties.Feature.Parent as SPSite;
        if (site != null)
        {
            SPWeb web = site.RootWeb;
            SetLogo(web);
        }
    }

    private void SetLogo(SPWeb web) {
        web.SiteLogoUrl = "/SiteAssets/logo.png";
        web.Update();
        foreach (SPWeb subweb in web.Webs)
        {
            SetLogo(subweb);
        }
    }
}

这到底是怎么回事?很清楚他在问什么——他想通过客户端对象模型设置站点的SiteLogoUrl属性。您应该将其移动到SharePoint Stack Exchange,而不是因为“不清楚”而将其关闭。