Sharepoint2010给我们带来的好处之一就是极大提高了Feature的版本管理能力,我们能够通过Visual Studio2010的帮助来对开发的Feature进行版本控制和升级。此处我们以Content Type为例来演示Content Type Feature的版本控制与升级功能。上一篇我们通过VS2010来创建一个Content Type Feature并把它部署到我们的网站上,当时我们指定它的版本号为1.0.0.0。这一篇,由于用户的需求发生了变化,我们需要对此Feature进行修改,修改后的版本号将为2.0.0.0,并会对以前的1.0.0.0的版本进行升级。
下面直接进入我们操作步骤:
1.使用Visual Studio2010打开我们前面创建的Sharepoint项目TestUpgradableCT。
在此项目中新增一个新的Element元素(NewFieldVersion2),此元素是我们对Feature的新增变化。
2.修改此Element元素的Element.xml内容如下:
3、把刚才新创建的Element加入到我们的ContentType Feature中。方法是
3.1.在Vs2010中展开Features节点,编辑它的Feature.Template.xml文档
修改其内容如下:
说明:
<UpgradeActions>节是要告诉Sharepoint,此节中包含的Feature内容就是我们要用于升级的内容。
<VersionRange BeginVersion="1.0.0.0" EndVersion="4.0.0.0">是指当Sharepoint检测到Feature的版本号提高,并且新的版本号是介于1.0.0.0和4.0.0.0之间的(也就是此处我们指定的范围值),则就会进行升级操作。
<ApplyElementManifests>,指定要在功能升级期间应用的元素清单,此处,我们指定了NewFieldVersion2目录下的Elements.xml元素,也就是我们刚才新添加的元素。
<AddContentTypeField>指定功能升级期间要添加的内容类型字段,其中的ContentTypeId我们使用了我们此处开发的Content Type Feature的id号, FieldID则是我们刚才添加的新的Elment元素的ID号,PushDown为可选属性,类型为 Boolean,我们此处指定应将内容类型字段应用于继承的内容类型和列表。
3.2修改Feature的版本号为2.0.0.0,然后重新Build和部署。
回到我们的测试网站,SiteActions-->SiteSettings,选择Galleries下的SiteContent Type项。
选择我们开发的ZLUpgradableCT,进入其设置页面。
设置页面中选择Add from existing site columns
添加我们升级版本中新添加的Element元素,在A feature upgrade attempt组下,可以看到Note on version2,选择此项添加到右边列表框中。
然后再做与上一篇类似的测试,可以看到,此Feature的升级生效。