在SharePoint 2013中通过csom更改SiteLogo

时间:2014-04-24 09:27:36

标签: sharepoint sharepoint-2013 csom

关于这个问题link

如何将siteLogo更改为新的?

甚至可以通过CSOM从ConsoleApplication进行吗?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

我找不到使用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);
        }
    }
}