部署模板 (SharePoint Foundation 2010)

 

适用于: SharePoint Foundation 2010

上一次修改主题: 2016-11-30

本文介绍如何创建自定义网站定义并使用解决方案包对其进行部署。

本文内容:

  • 什么是网站定义?

  • 网站定义和配置

  • 创建自定义网站定义和配置

  • 使用解决方案包部署网站定义

什么是网站定义?

在 Microsoft SharePoint Foundation 2010 中,通过选择网站定义配置或用于定义如何实例化网站的自定义网站模板,用户可以从用户界面 (UI) 创建网站。网站定义是一个模板,可以确定用于设置新 SharePoint 网站的项,例如,列表、文件、Web 部件、功能或设置。

网站定义是一系列网站定义配置。每个网站定义均指定一个名称,并包含一系列网站定义配置。在 SharePoint Foundation 2010 中,网站定义由一组可用于设置新网站的 XML 文件组成。这些文件位于 Web 服务器上。

网站定义主要包括多个 XML 和 ASPX 文件,这些文件存储在一个前端 Web 服务器上的 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates 文件夹下的文件夹中。

根据网站定义创建的网站将增加(但不会重复)原始网站定义中的结构和内容信息。在整个生命周期内,这些网站继续依赖作为其最终基础的网站定义。因此,Microsoft 不支持在已根据网站定义创建网站后更改或删除该网站定义。此类更改可能导致根据该定义创建的网站停止正常工作,或可能阻止基于该网站定义直接或间接创建新网站。若要自定义网站定义,开发人员可以添加一个功能将这些更改包含到网站定义中。不修改网站定义本身。

有关 Microsoft 所支持的网站定义自定义类型的详细信息,请参阅使用 Windows SharePoint Services、SharePoint Portal Server 2003 和 Office SharePoint Server 2007 中的自定义网站定义和自定义区域定义的受支持方案和不受支持方案 (https://go.microsoft.com/fwlink/?linkid=187678&clcid=0x804)。

在对象模型中,SPWebTemplate 表示网站定义(和配置)。有关网站模板和网站定义的详细信息,请参阅网站模板和定义(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=184756&clcid=0x804)(该链接可能指向英文页面)。

备注

自定义网站模板的 STP 格式(.stp 文件)在 SharePoint Foundation 2010 中已弃用,并替换为 WSP 格式网站模板。在 Windows SharePoint Services 3.0 中,用户可以将现有网站另存为自定义网站模板。此网站模板在数据库中作为模型存储,用户可以选择该网站模板作为定义如何实例化网站的基础。在 SharePoint Foundation 2010 中,用户可以将现有网站另存为模板。该模板以 .wsp 文件的形式保存在网站集首要网站的解决方案库内,可用于在网站集中的所有网站上创建子网站。

有关网站定义的详细信息,请参阅网站定义和配置(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=183458&clcid=0x804)(该链接可能指向英文页面)。

网站定义和配置

网站定义可定义特定的 SharePoint 网站。SharePoint Foundation 2010 本身安装了五个网站定义。一个网站定义可包含多个网站定义配置。SharePoint 网站均基于包含以下内容的特定网站定义配置:

  • STS 包含适用于工作组网站、空白网站和文档工作区的网站定义配置。

  • MPS 包含适用于基本会议工作区、空白会议工作区、决议会议工作区、社交会议工作区和多页会议工作区的网站定义配置。

  • CENTRALADMIN 提供适用于管理中心网站的网站定义配置。

  • WIKI 提供适用于通过使用 Wiki 技术支持社区内容的网站的网站定义配置。

  • BLOG 提供适用于博客的网站定义配置。

每个网站定义都包含一些文件,在安装 SharePoint Foundation 2010 期间,这些文件将放入前端 Web 服务器的 \\Program Files\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates 子文件夹中。网站定义文件除了包含文档模板文件(如 .dot 和 .htm)和内容文件(如 .gif 和 .doc)之外,还包含 .xml, .aspx, .ascx 和 .master 页面文件。

未经自定义的页面和页面自定义

在 Microsoft Internet Information Services (IIS) 启动过程中,网站定义文件缓存在服务器上的内存中。这将允许跨网站重用未经自定义的页面。在运行时,将从缓存提取这些文件中包含的信息。页面和列表架构可从网站定义文件中读取,但会显示为网站中的实际文件。新的 Web 部件页也将视为未经自定义的页面。

当网站页面经过自定义(不包括基于浏览器的自定义,如 Web 部件修改)时,会将其内容存储在内容数据库中,并使用自定义的网站页面,而不是使用网站定义中的原始页面。已上载的 .aspx 文件自动视为已自定义。

有关幻像和页面自定义的详细信息,请参阅网站定义和配置(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=183458&clcid=0x804)(该链接可能指向英文页面)。

核心架构文件

下表列出了可为网站定义修改的核心 XML 文件,并显示了其在文件系统中的位置。

WebTemp.xml

标识网站定义并提供有关其配置的信息。位于:

\TEMPLATE\1033\XML

Onet.xml

定义导航区域,指定可用的列表定义,指定文档模板及其文件,定义列表的基类型,并定义网站定义的配置和模块。位于:

\TEMPLATE\SiteDefinitions\site_type\XML

Schema.xml

在列表定义中定义视图、表单、工具栏和特殊字段。每个定义都拥有其自己的 Schema.xml 文件。位于:

\TEMPLATE\FEATURES\List_Definition_Name

DocIcon.xml

SharePoint Foundation 部署中的每个前端 Web 服务器都包含一个 DocIcon.xml 文件,该文件将文档类型的文件编程标识符 (ProgID) 和文件扩展名映射到用于打开每个类型的特定图标和控件。对 DocIcon.xml 的更改将全局应用到 SharePoint Foundation 部署,并影响前端 Web 服务器上的所有网站定义。位于:

\TEMPLATE\XML

这些 XML 文件使用协作应用程序标记语言 (CAML)(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=183464&clcid=0x804)(该链接可能指向英文页面) 定义网站的各个方面。有关这些可用于自定义网站定义的核心 XML 文件的详细信息,请参阅网站定义和配置(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=183458&clcid=0x804)(该链接可能指向英文页面)。

创建自定义网站定义和配置

可以通过手动复制现有网站定义或将 .wsp 文件导入到 Visual Studio 2010 中,来创建自定义网站定义。

从现有 SharePoint 网站导入项目

此方法要求将网站另存为 SharePoint Foundation 中的模板以生成 .wsp 文件,然后使用解决方案导入项目模板将该 .wsp 文件导入到 Visual Studio 2010 中。利用“导入 SharePoint 解决方案包”项目模板,可以在新 Visual Studio SharePoint 解决方案中重用一些元素,例如,现有 SharePoint 网站中的内容类型、列表定义和字段。有关将项从现有 SharePoint 网站导入到 Visual Studio SharePoint 项目的详细信息,请参阅从现有 SharePoint 网站导入项(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=187040&clcid=0x804)(该链接可能指向英文页面)。本章包含演示以下任务的演练:

  1. 通过添加自定义网站栏来自定义 SharePoint 网站。

  2. 将 SharePoint 网站导出到 .wsp 文件中。

  3. 使用 .wsp 导入项目将 .wsp 文件导入到 Visual Studio SharePoint 项目中。

复制现有 SharePoint 网站

此方法涉及复制现有网站定义、修改副本以及更改两个架构文件:WebTemp.xml 文件的副本和 Onet.xml 文件的副本。

警告

不要修改最初安装的 WebTemp.xml 文件。

  1. 复制位于本地驱动器上的 \Program Files\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates\ 目录中的现有网站定义文件夹。副本应与原件对等,并且可将其命名为不包含空格的任意名称。

    例如,若要创建从 Microsoft SharePoint Foundation 的工作组网站定义派生的自定义网站定义,请复制 \sts 文件夹。

  2. 复制 WebTemp.xml 文件。此文件位于本地驱动器上的 \Program Files\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\1033\XML 中。

    通过将一个字符串附加到原始文件的名称上,为该文件提供唯一的名称,例如,WebTempAction.xml。在运行时,编译器将此文件中包含的信息与原始文件中包含的信息合并,以指定哪些网站定义配置可用于创建新网站。

  3. 自定义新 WebTemp 文件的内容。

    每个 WebTemp.xml 文件都包含一组 Template 元素和 Configuration 子元素,它们可以向编辑器确定所有可实例化的网站定义配置。例如,Configuration 元素可定义标题、描述、用户界面 (UI) 中显示的图像 URL,以及显示类别,该显示类别指定在哪个选项卡上显示“创建网站集”页 Template Selection 部分中的模板。

    重要

    在 WebTemp 文件中定义的每个 Template 元素中,Name 属性必须包含已分配给新文件夹的相同名称。若要避免与 SharePoint Foundation 2010 中已使用的 ID 发生冲突,请为该 ID 属性使用大于 10,000 的值。

以下示例使用 WebTemp.xml 文件中的两个 Configuration 元素,来定义不同的网站定义配置以执行网站实例化;其中,一个元素用于 Research Collaboration 网站,另一个元素用于 Research Document Workspace 网站。此示例仅使用一个网站定义中的两个配置,但您可以在一个 WebTemp.xml 文件中包含多个网站定义,每个网站定义具有多个配置。每个网站定义均引用不同的网站定义文件夹及其 Onet.xml 文件。

<?xml version="1.0" encoding="utf-8" ?>
<Templates xmlns:ows="Microsoft SharePoint">
  <Template Name="RESEARCH" ID="10001">
    <Configuration ID="0" Title="Research Collaboration site" 
      Hidden="FALSE" ImageUrl="_layouts/images/stsprev.jpg" 
      Description="This definition creates a site for the Research 
      team to create, organize, and share general information." 
      DisplayCategory="Collaboration">
    </Configuration>
    <Configuration ID="1" Title="Research Workspace" Hidden="FALSE" 
      ImageUrl="_layouts/images/dwsprev.jpg" Description="This 
      definition creates a site for Research team colleagues to 
      work together on specific documents." 
      DisplayCategory="Collaboration">
    </Configuration>
  </Template>
</Templates>

Template 元素中 Name 属性的值所示,此示例假定存在一个名为“RESEARCH”的网站定义目录。如果 WebTemp*.xml 文件指定了多个网站定义,可通过其唯一 ID 值区分这些定义。

每个 Configuration 元素也包含一个 ID 属性。通过组合此 IDTemplate 元素中 Name 属性的值,可提供对特定 Onet.xml 文件中特定 Configuration 元素内容的引用。在此示例中,Name 属性包含 RESEARCH,ID 属性包含 0 和 1,这将会引用 Onet.xml 中的 RESEARCH 网站定义和 ID 为 0 或 1 的配置。

可能需要重置 IIS,让新定义配置显示为 UI 中的一个选项。若要执行此操作,请在命令提示符下输入 iisreset 。

有关定义 Onet.xml 中每个网站定义配置的详细信息,请参阅如何:使用网站定义配置(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=183465&clcid=0x804)(该链接可能指向英文页面)。

使用解决方案包部署网站定义

若要使用解决方案包部署自定义网站定义,请将 SiteDefinitionManifest 元素添加到该解决方案包的清单文件中。添加 TemplateFiles 元素以定义必须在 \14\Template 文件夹的子文件夹中部署的模板文件。

添加 SiteDefinitionManifest 元素

SiteDefinitionManifest 元素具有 Location 属性,该属性获取指定文件夹中的所有文件,并在 \14\Template\SiteTemplates 文件夹中创建所需的文件夹。WebTempFile 子元素将部署 webtemp*.xml 文件以使 SharePoint 2010 产品可以识别该模板,如以下示例所示:

  <SiteDefinitionManifests>
    <SiteDefinitionManifest Location="LitwareSiteTemplate">
      <WebTempFile Location="1033\xml\webtempLitware.xml" />
    </SiteDefinitionManifest>
  </SiteDefinitionManifests>

添加 TemplateFile 元素

解决方案指令清单文件中的 TemplateFile 元素用于定义必须在 \14\Template 文件夹的子文件夹中部署的模板文件。可以通过这种方式部署的文件类型的示例是 fldtypes*.xml 文件,此文件定义了自定义字段类型的详细信息。使用 Location 属性可指定文件的相对路径,该路径在以下示例中用字符串“Text”表示:

  <TemplateFiles
    <TemplateFile
      Location="Text"/>
      ...
  </TemplateFiles>

有关如何部署解决方案的详细信息,请参阅部署解决方案包 (SharePoint Foundation 2010)