C#方法 - 发布整个站点核心站点

时间:2014-02-11 20:27:29

标签: c# asp.net visual-studio-2012 sitecore sitecore7

我有一个奇怪的请求。我想知道是否有可能让您的C#解决方案文件将整个站点从主数据库发布到Web数据库。我在我的开发环境中,当我与多人合作时,Sitecore中的项目数量每天都在变化。这不是用于生产内容管理或内容交付的东西。纯粹的发展。

是否可以像在内容编辑器中按发布按钮一样在C#中触发完整的站点发布?代码会是什么样的?

/sitecore/shell/Applications/Publish.aspx

我认为这个C#方法适用于Sitecore.Publishing.PublishManager?

谢谢!

1 个答案:

答案 0 :(得分:4)

我们也在我们的项目上使用它...... 我们将它放在常规的.aspx页面中。我希望有所帮助:

protected void Page_Load(object sender, EventArgs e)
{
    PublishMode publishMode = PublishMode.Full;

    using (new Sitecore.SecurityModel.SecurityDisabler())
    {
        var webDb = Sitecore.Configuration.Factory.GetDatabase("web");
        var masterDb = Sitecore.Configuration.Factory.GetDatabase("master");

        try
        {
            foreach (Language language in masterDb.Languages)
            {
                //loops on the languages and do a full republish on the whole sitecore content tree
                var options = new PublishOptions(masterDb, webDb, publishMode, language, DateTime.Now) { RootItem = masterDb.Items["/sitecore"], RepublishAll = true, Deep = true };

                var myPublisher = new Publisher(options);
                myPublisher.Publish();
            }
        }
        catch (Exception ex)
        {
            Sitecore.Diagnostics.Log.Error("Could not publish", ex);
        }
    }
}