如何在Sitecore 6.4中高效发布处于非最终工作流状态的项目?

如何在Sitecore 6.4中高效发布处于非最终工作流状态的项目?,sitecore,sitecore6,Sitecore,Sitecore6,虽然可以使用调用PublishManager.PublishSmart的计划任务将达到最终工作流状态的项目轻松发布到WEB数据库,但我希望能够将处于任何工作流状态的所有项目的最新版本发布到不同的发布目标(用于内部预览),基本上绕过了工作流 请记住,每次修改项目和/或更改工作流状态时,这需要在计划中每天发生几次,而不是时,您建议哪种方法是执行此操作最有效的方法 如果我更改了要求,只说明处于某些特定工作流状态(例如,待批准和已批准)的项目(final和/或not final),该建议会发生什么变化需

虽然可以使用调用PublishManager.PublishSmart的计划任务将达到最终工作流状态的项目轻松发布到WEB数据库,但我希望能够将处于任何工作流状态的所有项目的最新版本发布到不同的发布目标(用于内部预览),基本上绕过了工作流

请记住,每次修改项目和/或更改工作流状态时,这需要在计划中每天发生几次,而不是时,您建议哪种方法是执行此操作最有效的方法


如果我更改了要求,只说明处于某些特定工作流状态(例如,待批准和已批准)的项目(final和/或not final),该建议会发生什么变化需要按计划发布到预览发布目标吗?

请参阅Alex Shyba的这篇博文:。该工作流提供程序加上标准的发布代理应该可以满足您的需求。

请参阅Alex Shyba的这篇博文:。该工作流提供程序加上一个标准的发布代理应该可以满足您的需要。

您可能只需要配置一个指向主数据库的站点。请参阅有关设置预览站点的stackoverflow回答:

您可能只想配置指向主数据库的站点。请参阅有关设置预览网站的stackoverflow回答:

在具有
enableworkflows=false
的网站(如
下的web.config中所定义)的上下文中发布

未经测试,但类似于:

using (new SiteContextSwitcher(SiteContextFactory.GetSiteContext("system"))) // workflows not enabled
        {
            var options = new PublishOptions(Context.ContentDatabase, Factory.GetDatabase("web"), PublishMode.Smart, null, DateTime.Now);
            options.PublishingTargets.Clear();
            options.PublishingTargets.Add("internal preview");
            new Sitecore.Publishing.Publisher(options).Publish();
        }

!

在具有
enableworkflows=false
的网站上下文中发布(定义见
下的web.config)

未经测试,但类似于:

using (new SiteContextSwitcher(SiteContextFactory.GetSiteContext("system"))) // workflows not enabled
        {
            var options = new PublishOptions(Context.ContentDatabase, Factory.GetDatabase("web"), PublishMode.Smart, null, DateTime.Now);
            options.PublishingTargets.Clear();
            options.PublishingTargets.Add("internal preview");
            new Sitecore.Publishing.Publisher(options).Publish();
        }

!

是的,我读过关于这个话题的石坝三部曲。2010解决方案仅通过操作工作,即当项目从一个工作流状态移动到另一个工作流状态时,该工作流状态在预览数据库上启用了要发布的标志。2009年的帖子似乎更像是对我的第一个要求的回答,但是,正如2010年的帖子所解释的,当有人进行站点智能发布时,它有缺点。我不认为是这样,发布将按照预期的方式进行预览或制作。该标志仅用于指定“在此阶段,我们可以发布此项目进行预览”,以允许工作流中的多个步骤-“半决赛”可以是第一步或第n步。我认为自动发布到QA也有一个步骤,但是正常的发布也应该像你期望的那样工作。是的,我读过关于这个主题的Shiba三部曲。2010解决方案仅通过操作工作,即当项目从一个工作流状态移动到另一个工作流状态时,该工作流状态在预览数据库上启用了要发布的标志。2009年的帖子似乎更像是对我的第一个要求的回答,但是,正如2010年的帖子所解释的,当有人进行站点智能发布时,它有缺点。我不认为是这样,发布将按照预期的方式进行预览或制作。该标志仅用于指定“在此阶段,我们可以发布此项目进行预览”,以允许工作流中的多个步骤-“半决赛”可以是第一步或第n步。我认为自动发布到QA也有一个步骤,但是正常发布也应该像您期望的那样工作。试过了。“实时站点”应该关闭缓存(这是有道理的,对吧),这意味着预览站点对于客户端来说速度太慢,令人无法接受。所以我们不得不放弃这一方法,这是我们的主要选择。“实时站点”应该关闭缓存(这是有道理的,对吧),这意味着预览站点对于客户端来说速度太慢,令人无法接受。所以我们不得不放弃这种方法,这是我们的主要选择。从来没有想过用这种特殊的方法给这只猫剥皮。好建议!从来没有想过用这种特殊的方式剥这只猫的皮。好建议!