Sitecore增量发布项目

时间:2017-03-07 14:41:32

标签: c# .net sitecore publish

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

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();

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

  

类型' System.InvalidOperationException'的例外情况发生在Sitecore.Kernel.dll中但未在用户代码中处理。   其他信息:无法为增量发布指定根项目

contentItem变量是一个存储桶,其中包含其他可存储的项目。 有没有办法为它做增量发布?

2 个答案:

答案 0 :(得分:3)

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

仅对于项目,可以使用以下两个选项:

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

答案 1 :(得分:2)

添加马立克回答

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

根据检索到的时间戳,发布PublishQueue表中日期大于或等于上次发布时间戳的所有项目。

这就是为什么当您选择发布商品时,只有以下两个选项:

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