发布父项时,不会发布Sitecore中的某些子项

发布父项时,不会发布Sitecore中的某些子项,sitecore,Sitecore,我的行为真的很奇怪。如果能帮我找到一个解决方案,或者只是给我一个如何找到它的建议,我将不胜感激 我有这样的sitecore项目结构: 以下是几个案例: 更改“链接1”和“横幅” 发布包含所有子项的父项“测试2” 结果:“横幅”更改,“链接1”未更改 二, 更改“链接1”和“横幅” 发布包含所有子项的父项“内容” 结果:“横幅”更改,“链接1”也更改 anubody知道为什么会发生shis吗?为什么“链接1”没有在第一个案例中发布?这是一个已知的错误。或者至少,你描述的症状与我们在这里经

我的行为真的很奇怪。如果能帮我找到一个解决方案,或者只是给我一个如何找到它的建议,我将不胜感激

我有这样的sitecore项目结构:

以下是几个案例:

    • 更改“链接1”和“横幅”
    • 发布包含所有子项的父项“测试2”
    • 结果:“横幅”更改,“链接1”未更改
  • 二,

    • 更改“链接1”和“横幅”
    • 发布包含所有子项的父项“内容”
    • 结果:“横幅”更改,“链接1”也更改

    anubody知道为什么会发生shis吗?为什么“链接1”没有在第一个案例中发布?

    这是一个已知的错误。或者至少,你描述的症状与我们在这里经历的完全吻合


    不幸的是,Sitecore还没有正式发布关于修复的KB文章。您需要打开Sitecore支持票证。作为参考,热修复程序是436732。

    最后,我能够使用EventHandler For publish:end解决这个问题,如果publish项的类型为“test 2”,则以编程方式启动publich

    web.config:

    <event name="publish:end">
        <handler type="YourProject.Infostructure.EventHandlers, YourProject.Infostructure" method="OnPublishEnd" />
    </event>
    

    请仔细阅读本疑难解答指南:您很可能会发现此处缺少的内容。哪个版本的Sitecore?我注意到了一些奇怪之处,但还没有时间进行全面调查。在取消选中Sitecore 8中的“发布相关项目”后,我发现这些项目已正确发布,但正如我所说的,我还没有时间调查、复制或提交支持通知单。请访问web db并准确检查test2项目下的内容(检查删除的项目),您应该在test1项目上使用重新发布来修复已删除项目的问题。这是我现在唯一的想法。你有工作流程吗?
    public void OnPublishEnd(object sender, EventArgs args)
        {
            Publisher publisher = Event.ExtractParameter(args, 0) as Publisher;
    
            if (publisher != null && publisher.Options.Mode == PublishMode.SingleItem && publisher.Options.RootItem.TemplateID == IMicrositeLandingPageConstants.TemplateId &&
                publisher.Options.Deep)
            {
                var item =
                    publisher.Options.RootItem.Children.FirstOrDefault(
                        i => i.TemplateID == IContentFolderConstants.TemplateId);
    
                if (item != null)
                {
    
                    //PUBLISH
    
                    PublishOptions publishOptions =
                        new PublishOptions(item.Database,
                                          Database.GetDatabase("web"),
                                          Sitecore.Publishing.PublishMode.SingleItem,
                                          item.Language,
                                          System.DateTime.Now);  // Create a publisher with the publishoptions
                    Publisher publisher2 = new Publisher(publishOptions);
    
                    // Choose where to publish from
                    publisher2.Options.RootItem = item;
                    // Publish children as well
                    publisher2.Options.Deep = true;
    
                    publisher2.Publish();
                }
            }
        }