如何以编程方式发布sitecore的相关项目

问题描述

请建议以编程方式在 sitecore 中发布相关项目的任何方式。

P.S:Deep = true 不起作用。

解决方法

PublishOptions 类具有“PublishRelatedItems”属性。

您可以使用它,例如使用由 Brian Pedersen ( https://briancaos.wordpress.com/2019/09/13/sitecore-publish-items-using-the-publishmanager/ )

编写的扩展方法
public static void PublishItem(
    this Item item,PublishMode publishMode,bool publishAsync = false,bool deepPublish = false,bool publishRelatedItems = false,bool compareRevisions = false)
{
   
  if (item == null)
    return;

  PublishOptions publishOptions = new PublishOptions(item.Database,Database.GetDatabase("web"),publishMode,item.Language,DateTime.Now);
  publishOptions.RootItem = item;
  publishOptions.Deep = deepPublish;
  publishOptions.PublishRelatedItems = publishRelatedItems;
  publishOptions.CompareRevisions = compareRevisions;

  var handle = PublishManager.Publish(new PublishOptions[] { publishOptions });
  if (publishAsync)
    return;
  PublishManager.WaitFor(handle);
}
,

我通过获取该项目的所有引用并使用发布管理器发布它来做到这一点。我使用 GetReferences() 来获取引用。

谢谢。