2017-03-07 95 views
2

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

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变量指定是铲斗,其包含其他bucketable物品。 有没有办法为它做增量发布?

回答

3

不,这是不可能的。 Incremental只适用于整个数据库。

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

  1. 智能发布 - 发布源和目标数据库之间的差异。
  2. 重新发布 - 发布一切。
1

我想补充马立克回答

增量发布不采取任何根项目。它利用发布队列表来了解要发布哪些项目。 Sitecore将从主数据库中查询属性表以检索最后的发布日期和目标数据库。

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

这是一个原因,当你选择发布项目,还有不仅是这两个选项:

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