项目的 Sitecore 增量发布

Sitecore incremental publish of an item

是否可以对项目进行增量发布? 我试图通过以下方式做到这一点:

var masterDatabase = Factory.GetDatabase("master");
var webDatabase = Factory.GetDatabase("web");
var contentItem = masterDatabase.GetItem("/sitecore/content/path to item");

PublishOptions options = new PublishOptions(
    masterDatabase, 
    webDatabase,
    PublishMode.Incremental, 
    Language.Current, 
    DateTime.Now)
{
    RootItem = contentItem,
    Deep = true
};

Publisher publisher = new Publisher(options);
publisher.PublishAsync();

但我在最后一行收到以下错误:

An exception of type 'System.InvalidOperationException' occurred in Sitecore.Kernel.dll but was not handled in user code. Additional information: A root item can not be specified for incremental publishing

contentItem 变量是一个桶,其中包含其他可桶化的项目。 有什么方法可以做增量发布吗?

没有。这是不可能的。 Incremental 仅适用于整个数据库。

对于项目,只有这 2 个选项是可能的:

  1. 智能发布 - 发布源数据库和目标数据库之间的差异。
  2. 重新发布 - 发布所有内容。

补充 Marek 的回答

增量发布不采用任何根项。它利用发布队列 table 来了解要发布的项目。 Sitecore 将从主数据库查询属性 Table 以检索上次发布日期和目标数据库。

根据检索到的时间戳,发布队列 table 中日期大于或等于上次发布的时间戳的所有项目都已发布。

这就是为什么当您 select 发布项目 时,只有这两个选项:

  1. 智能发布
  2. 完整发布