3

关于这个问题链接

如何将 siteLogo 更改为新的?

甚至可以通过 CSOM 从 ConsoleApplication 执行此操作吗?

4

2 回答 2

2

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

于 2014-04-24T16:23:58.507 回答
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);
        }
    }
}
于 2014-07-14T01:26:40.517 回答