更新现有站点上已发布页面的结构

Updating the structure of the published pages on existing site

我有一个现有的基于 Episerver 的网站,它在更改时不会更新已发布页面的结构。

我有大量来自 BasePage 的已发布页面。然后我必须向该页面添加一个新块:

public abstract class BasePage : PageData
{
    [Display(Name = "SomeBlock")]
    public virtual SomeBlock SomeBlock { get; set; }
}
public class SomeBlock : BlockData
{
    [CultureSpecific]
    [Display(Name = "Field1")]
    public virtual string Field1 { get; set; }
}

我正在尝试更新计划作业中的页面。代码看起来像

BasePage writeablePage = (BasePage)basePage .CreateWritableClone();

 if (basePage.SomeBlock == null)
     basePage.SomeBlock = new SomeBlock ();

 if (string.IsNullOrWhiteSpace(basePage.SomeBlock.Field1))
 {
     basePage.SomeBlock.Field1 = "Some Text";
 }


 DataFactory.Instance.Save(writeablePage, SaveAction.Publish, AccessLevel.NoAccess);

但是这种方法行不通。我试过 "SaveAction" 但没有效果

更新:我正在使用暂存环境中的数据库,它看起来像是版本控制问题(假设我在本地有 1.* 程序集,但暂存服务器上有 2.*)

问题是由于本地程序集的版本较低,然后在使用数据库的登台服务器上。

本地解决方案:

  1. 获取数据库版本(可以在管理员模式下查看)
  2. 将程序集信息版本设置得高于数据库中的版本