如何:创建自定义 Web 模板

上次修改时间: 2011年2月2日

适用范围: SharePoint Foundation 2010

本主题简要概述如何创建自定义 Web 模板。

创建初始 Web 模板

  1. 通过在用户界面 (UI) 中将网站"另存为模板",用户可以创建 Web 模板。对于开发人员而言,这也是最简单的开始方式。在 UI 中,可创建一个类型与您要创建的自定义网站类型最相似的网站。

  2. 可以仅使用 Microsoft SharePoint Foundation UI 和 Microsoft SharePoint Designer 根据需要添加或删除列表、Web 部件和其他功能,直到网站与您所需的自定义网站类型尽可能相符。

  3. 如果现有原型网站与您所需的自定义网站类型很接近,则可在"网站设置"页中将其另存为模板。该 Web 模板将保存到网站集的解决方案库中。模板名称中不能使用空格。

  4. 如果需要进一步执行在 UI 中无法执行的自定义操作,请按照"设置 Visual Studio 项目"过程中的步骤进行操作。

设置 Visual Studio 项目

  1. 在"解决方案库"中停用解决方案。

  2. 从"解决方案库"中下载解决方案 (.wsp) 文件。

  3. 从"解决方案库"中删除解决方案。

    备注

    也可以绕过"解决方案库"编写代码以将网站另存为模板,并将解决方案包直接下载到本地文件系统。有关示例,请参阅 SPSolutionExporter.ExportWeb 方法。

  4. 在 Microsoft Visual Studio 中,创建"导入 SharePoint 解决方案包"项目。指定该项目是沙盒解决方案,而不是场解决方案。

  5. 当提示您指定项目源时,请指定您所下载的解决方案的路径。

  6. 当提示您选择要导入的项时,请选择所有项或只选择需要的项,然后单击"完成"。

  7. 当 Visual Studio 创建项目后,将在"解决方案资源管理器"中高亮显示项目名称。在"属性"窗口中,将"将程序集包含在包中"属性设置为"false"。

  8. 根据需要编辑提取的文件。大多数情况下,您只需更改 WebTemplate 元素或 Onet.xml 文件。有关详细信息,请参阅以下过程。

编辑 WebTemplate 元素

  1. "解决方案资源管理器"中的"Web 模板"节点下有一个包含 Elements.xml 文件的子文件夹。打开此文件。

  2. 根据需要编辑 Elements 标记的 WebTemplate 子元素。有关 WebTemplate 元素的属性的含义的信息,请参阅 WebTemplate 元素(Web 模板)

编辑 Onet.xml 文件

  1. 用于 Web 模板的 Onet.xml 文件位于与包含 WebTemplate 元素的 Elements.xml 文件相同的子文件夹中,或位于"解决方案资源管理器"中的"其他导入文件"节点下的某个子文件夹中。打开 Onet.xml 文件。

  2. 根据需要编辑 Onet.xml 文件。编辑此文件与编辑属于网站定义一部分的 Onet.xml 文件基本相同。(有关详细信息,请参阅如何:创建自定义网站定义和配置。)但请注意以下差别:

    • Web 模板的 Onet.xml 文件中的 Project 元素只有两个子元素:NavBars 元素和 Configurations 元素。WebTemplate 元素的 BaseTemplateID 属性和 BaseTemplateName 属性用于标识最终派生该 Web 模板的网站定义。Web 模板的 Onet.xml 文件依赖该源网站定义的 Onet.xml 文件提供 Project 元素的所有其他子元素,包括 ListTemplates、DocumentTemplates、Modules、ServerEmailFooter 和 Components。

    • Configurations 元素只有一个子 Configuration 元素。

    • WebTemplate 元素的部分属性与 Project 元素的属性同名。请使用 WebTemplate 元素中的属性。

    有关此文件的详细信息,请参阅了解 Onet.xml 文件

打包、上载和测试自定义 Web 模板

  1. 在 Visual Studio 中的"生成"菜单上,选择"部署解决方案"。如果您的开发服务器场是单一服务器场,此操作将生成解决方案、将解决方案重新打包、上载到网站集的沙盒解决方案库并激活该解决方案。如果开发服务器场包含多台服务器,则必须在 UI 中执行激活步骤。

  2. 基于自定义 Web 模板创建网站,以对该模板进行测试。

请参阅

概念

Web 模板 XML