Sharepoint2010给我们带来的好处之一就是极大提高了Feature的版本管理能力,我们能够通过Visual Studio2010的帮助来对开发的Feature进行版本控制和升级。此处我们以Content Type为例来演示Content Type Feature的版本控制与升级功能。
这一篇我们要做的事就是用Vs2010开发一个Feature,赋予其一个版本号并部署到我们的网站上,而下一篇我们会描述如何修改并升级这个Feature。下面直接进入我们操作步骤:
1.使用Visual Studio2010新创建一个空的Sharepoint项目("Empty Sharepoint Project")并命名为 "TestUpgradableCT"。这一个Farm的solution,把此项目关联到你自己的测试网站地址上,此处我们的测试网站为:
http://sd1-sp1dev:2100/sites/SPTestSite
指定Farm还是Sandbox
2.给项目TestUpgradableCT添加新的Content Type项。命名为"The Upgradeable Content Type",
开发环境会跳出一个窗口,让你指定此Content Type项的Parent类型,选择"Document"
Vs2010会在你的项目中添加The Upgradable Content Type项,并打开它的Element.xml内容,如下图:
3、修改Element.xml的内容如下:
< Elements xmlns ="http://schemas.microsoft.com/sharepoint/" >
< ContentType ID ="0x0101000dca569159f044bba9feb7f6d1abad4c"
Name ="ZLUpgradeableCT"
Group ="A feature upgrade attempt"
Description ="The upgradeable content type"
Version ="0" >
< FieldRefs >
< FieldRef ID ="{8C8D6C5E-F9AB-4B48-86B1-0126FAB112F4}" />
</ FieldRefs >
</ ContentType >
< Field ID ="{8C8D6C5E-F9AB-4B48-86B1-0126FAB112F4}"
Name ="Note1"
StaticName ="Note1"
DisplayName ="Note on version 1"
Type ="Note"
Group ="A feature upgrade attempt" >
</ Field >
</ Elements >
此步骤是在我们刚才创建的Content Type中添加一个Field,此Field为Note类型,在此处我们对此Field的相关属性进行了设置(Name, StaticName,DisplayName,Group),并通过<FieldRefs>节把它引用到我们的ContentType中。 Field的ID可以使用Vs2010的Tools-->Create Guid工具来生成。而Group属性则指定了我们创建的ContentType属于哪一个Group,我们将在后面要用到它来快速定位我们的ContentType。
4、修改项目的Feature版本。
双击你的Feature节点,修改它的版本号为 1.0.0.0,默认此栏为空,空的意思就是默认版本为0.0.0.0
然后Build并部署此项目。
5、查看结果
打开我们的网站,我们准备把此网站的Shared Documents拿来测试。
点击Shared Docuemnts,选择Library Tools的Library---Library Settings
点击进入Advanced Setting页,设置Allow management of content types为Yes.
设置后你就可以在此Document Library Settings 页看到Content Types栏目,
选择Add from existing site content types功能项,进入Select Content Types设置页,在此页的Group下拉框中选择A feature upgrade attempt,我们在此处可以看到我们刚才用VS2010开发的Content Type,它的名字是"ZLUpgradeableCT",直接把它添加到右边列表框中。
回到我们Shared Documents,为它添加新的文档。此时可以看到多出了我们创建的Content Type
打开新建文档可以看到的确起作用了,新建文档要求你输入相关的内容
保存后,通过Add document功能打开添加文档窗口。此窗口中显示出我们刚才创建新文档时输入的内容。
保存后可看到结果。