使用 SharePoint 2007 部署解决方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用SharePoint 2007 部署解决方案
Ted Pattison
代码下载位置: OfficeSpace2007_08.exe(229 KB)
Browse the Code Online
目录
解决方案包
部署OfficeSpaceFeature 组件
为解决方案包生成CAB 文件
部署
总结
在2007 年5 月一期的MSDN®杂志中,我讨论了基础概念,在开发自定义功能和应用程序页以使用Windows®SharePoint®Services (WSS) 3.0 创建业务解决方案时通常会遇到这些概念。功能和应用程序页代表两种类型的WSS 组件,它们是开发人员可用于扩展SharePoint 2007 站点的基础构建基块。在SharePoint 开发过程中还会用到几种其他的WSS 组件类型,包括网站定义、页面模板、Web 部件、事件处理程序和工作流。
我在 5 月份的专栏中重点介绍了如何创建、测试和调试WSS 组件,在本月的专栏中,我主要从部署的角度进行介绍。对一组组件进行全面测试之后,WSS 提供了一种在过渡或生产环境中进行开发的方法。更确切地说,WSS 3.0 引入了一种新的部署机制,称为解决方案包,通过它您可以创建一个可测试和可重复的受支持的安装过程。解决方案包的真正优势在于它们允许您创建一个可分发文件,其中摘要记录了有关部署目标是一个SharePoint 服务器还是一个具有多个前端Web 服务器的企业级服务器场的详细信息。
解决方案包
解决方案包是部署WSS 组件的首选机制。解决方案包本身是一个带有.wsp 扩展名的CAB 格式的压缩文件,其中包含一个或多个WSS 组件,以及需要部署在每台前端Web 服务器上的所有依赖的文件。
一个简单的解决方案包可能只包含部署一种功能所需的文件。更复杂的包可能包含部署多种功能、应用程序页、Web 部件、列表定义、事件处理程序和网站定义所需的文件。您可以根据部署单一单元所需的组件集确定解决方案包中包含的内容。
WSS 运行时提供了一个内置安装程序组件,它在每个前端Web 服务器上运行,负责解压解决方案包内的文件和正确地安装其组件。WSS 安装程序要求每个解决方案包都具有一个名为manifest.xml 的文件,在其中存储其他元数据。调用该安装程序部署解决方案包时,它会读取manifest.xml 中的元数据以准确确定需要解压和部署CAB 文件内的哪些组件和文件。
manifest.xml 中包含指示安装程序需要从解决方案包中解压哪些文件并将其复制到各个WSS 系统目录的元数据。除此之外,manifest.xml 还包含告知安装程序执行其他重要部署过程(如向WSS 运行时注册各种功能、将程序集DLL 添加到全局程序集缓存(GAC) 和使用Web 部件部署过程中所需的SafeControl 条目更新web.config 文件)的元数据。
部署OfficeSpaceFeature 组件
在5 月份的专栏中,我提出了一个由名为OfficeSpaceFeature 的功能组成的业务解决方案,
该功能与名为LetterGenerator.aspx 的自定义应用程序页协同工作。这两个组件协同工作可以创建一个业务解决方案。
本月的专栏附带的示例代码中包含名为OfficeSpaceFeature 的Visual Studio®项目。此项目包含的源代码既适用于功能又适用于应用程序页。我在5 月份的专栏中附带的是此项目的早期版本,但是下载现已更新,包含将所有所需组件和文件构建和部署为解决方案包所需的其他文件。请注意,此项目包含一个\Solution 目录和一个\Package 目录,如图1所示。
图1解决方案包组件
在SharePoint 站点上下文中激活OfficeSpaceFeature 时,它会提供一个名为Customer Letters 的文档库。它还会提供一个名为LetterTemplate.docx 的自定义模板文件,该文件充当Customer Letters 文档库中的文档模板。这就意味着LetterTemplate.docx 是必须随\FEATURES 目录中的功能一起部署在每个前端Web 服务器上的依赖的文件。
名为OfficeSpaceFeature 的功能还可以使用在功能激活期间触发的事件处理程序创建。此事件处理程序在SPFeatureReceiver 派生的类中定义,并且编译到名为OfficeSpaceFeature.dll 的程序集中。WSS 要求包含事件处理程序的所有程序集DLL 都使用强名称编译,并安装在GAC 中以便正常运行。
基本了解了构成此业务解决方案的组件和文件后,我们来看一下OfficeSpaceFeature 功能的feature.xml 文件(请参见图2)。与WSS 开发过程中使用的许多其他基于XML 的文件一样,feature.xml 文件包含遵循特定于WSS 的语言—协作应用程序标记语言(CAML) 的XML。
Figure 2 OfficeSpaceFeature 的feature.xml
复制代码
Title=”A Sample Office Space Feature” Description=”Demoware from Ted Pattison’s Office Space column” Version=”1.0.0.0” Scope=”Web” ImageUrl=”OfficeSpace/PithHelmet.gif” ReceiverAssembly=”OfficeSpaceFeature, [full four-part assembly name]” Rec eiverClass=”OfficeSpaceFeature.FeatureReceiver” xmlns=”/sharepoint/”>
Feature 元素包含一个ElementManifest 元素,后者包含一个内部ElementManifest 元素和一个ElementFile 元素。ElementManifest 元素引用一个名为elements.xml 的文件,该文件包含用于定义ListInstance 元素(提供新文档库和新列表)的CAML。还有一个Module 元素,用于在Feature 激活期间将LetterTemplate.docx 复制到当前站点的上下文中,以便该文档充当Customer Letters 文档库中的文档模板。
ElementManifest 元素是Feature 定义的基本部分,因为它引用elements.xml。而该文件添加在Feature 激活期间执行的配置说明。ElementFile 元素的主要作用是什么呢?它实际上并不更改Feature 本身的行为。而是添加当解决方案包中已包含Feature 时安装程序会用到的元数据。ElementFile 元素告知安装程序在部署过程中,LetterTemplate.docx 必须复制到OfficeSpaceFeature 目录。
现在我们来关注一下manifest.xml 文件中定义的CAML(请参见图3)。manifest.xml 文件包含顶级Solution 元素,该元素包含引用组件和文件的内部元素。
Figure 3 manifest.xml
复制代码
SolutionId=”848ACD1F-DEBC-4078-B21D-56CECE3F499B” xmlns=”/sharepoint/”>