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內容如下:
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Field ID="{4A977AA8-802B-4E4E-8003-CC48BE5EF66E}"
Name="Note2"
StaticName="Note2"
DisplayName="Note on version 2"
Type="Note"
Group="A feature upgrade attempt"/>
</Elements>
3、把剛才新建立的Element加入到我們的ContentType Feature中。方法是
3.1.在Vs2010中展開Features節點,編輯它的Feature.Template.xml文檔
修改其內容如下:
<?xml version="1.0" encoding="utf-8" ?>
<Feature xmlns="http://schemas.microsoft.com/sharepoint/">
<UpgradeActions>
<VersionRange BeginVersion="1.0.0.0" EndVersion="4.0.0.0">
<ApplyElementManifests>
<ElementManifest Location="NewFieldVersion2/Elements.xml"/>
</ApplyElementManifests>
<AddContentTypeField
ContentTypeId="0x0101000dca569159f044bba9feb7f6d1abad4c"
FieldId="{4A977AA8-802B-4E4E-8003-CC48BE5EF66E}"
PushDown="TRUE"/>
</VersionRange>
</UpgradeActions>
</Feature>
說明:
<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的升級生效。