部署模板 (SharePoint Server 2010)
适用于: SharePoint Server 2010
上一次修改主题: 2016-11-30
本文介绍如何创建自定义网站定义并使用解决方案包来部署它。
本文内容:
什么是网站定义?
网站定义和配置
创建自定义网站定义和配置
使用解决方案包部署网站定义
什么是网站定义?
在 Microsoft SharePoint Server 2010 中,用户可通过在用户界面 (UI) 中选择网站定义配置或用于定义实例化网站的方式的自定义网站模板来创建网站。网站定义是一个模板,可用于确定列表、文件、Web 部件、功能或用于设置新的 SharePoint 网站的各项设置。
网站定义是一系列网站定义配置。每个网站定义指定一个名称并包含一个网站定义配置的列表。在 SharePoint Server 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)。
备注
在 SharePoint Server 2010 中,已弃用自定义网站模板的 STP 格式(.stp 文件),而用 WSP 格式网站模板代替。在 Office SharePoint Server 2007 中,用户可将现有的网站保存为自定义模板。模板作为模型存储在数据库中,用户可以选择网站模板作为定义实例化网站的方式的基础。在 SharePoint Server 2010 中,用户将现有网站保存为模板。该模板以 .wsp 文件的形式保存在网站集中的首要网站的解决方案库中,从而可用于在网站集中的所有网站上创建子网站。
有关网站定义的详细信息,请参阅网站定义和配置 (https://go.microsoft.com/fwlink/?linkid=183458&clcid=0x804)。
网站定义和配置
网站定义用于定义一个特定的 SharePoint 网站。SharePoint Server 2010 本身安装了五个网站定义。一个网站定义可包含多个网站定义配置。SharePoint 网站基于特定网站定义配置,其中包括:
STS 包括工作组网站、空白网站和文档工作区的网站定义配置。
MPS 包括基本会议工作区、空白会议工作区、决议会议工作区、社交会议工作区和多页会议工作区的网站定义配置。
CENTRALADMIN 提供管理中心网站的网站定义配置。
WIKI 提供通过使用 wiki 技术支持社区内容的网站的网站定义配置。
BLOG 提供博客的网站定义配置。
每个网站定义均由若干文件构成,这些文件位于前端 Web 服务器上在安装 SharePoint Server 2010 时创建的 \\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\网站类型\XML |
Schema.xml |
定义列表定义中的视图、表单、工具栏和特殊字段。每个定义都有其自己的 Schema.xml 文件。所在位置: \TEMPLATE\FEATURES\List_Definition_Name |
DocIcon.xml |
SharePoint Server 部署中的每个前端 Web 服务器都包含一个 DocIcon.xml 文件,该文件可将文件编程标识符 (ProgID) 和文档类型的文件扩展名映射到特定图标和用于打开每个类型的控件。对 DocIcon.xml 的更改适用于整个 SharePoint Server 部署,将会影响前端 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 Server 将网站保存为模板以生成一个 .wsp 文件,然后通过使用解决方案导入项目模板,将该 .wsp 文件导入到 Visual Studio 2010 中。“导入 SharePoint 解决方案包”项目模板可让您在新的 Visual Studio SharePoint 解决方案中重用现有 SharePoint 网站中的元素,例如内容类型、列表定义和字段。有关将现有 SharePoint 网站中的项导入到 Visual Studio SharePoint 项目中的详细信息,请参阅从现有 SharePoint 网站导入项 (https://go.microsoft.com/fwlink/?linkid=187040&clcid=0x804)(该链接可能指向英文页面)。这一章包括演示下列任务的演练:
通过添加自定义网站栏自定义 SharePoint 网站。
将 SharePoint 网站导出到一个 .wsp 文件。
通过使用 .wsp 导入项目,将 .wsp 文件导入到 Visual Studio SharePoint 项目中。
复制现有的 SharePoint 网站
此方法涉及复制现有网站定义、修改副本以及更改两个架构文件:WebTemp.xml 文件的副本和 Onet.xml 文件的副本。
警告
不要修改最初安装的 WebTemp.xml 文件。
复制位于 Local_Drive:\Program Files\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates\ 目录中的现有网站定义文件夹。您的副本应与原始文件夹同级,并且可以为其指定一个不含空格的名称。
例如,若要创建一个从 Microsoft SharePoint Server 的工作组网站定义派生的自定网站定义,应复制 \sts 文件夹。
复制 WebTemp.xml 文件。该文件位于 Local_Drive:\Program Files\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\1033\XML 目录中。
通过为原始文件的名称追加一个字符串,为该文件指定一个唯一名称;例如,WebTempAction.xml。在运行时,编译器将该文件中包含的信息与原始文件中包含的信息合并在一起,以指定可用于创建新网站的网站定义配置。
自定义新的 WebTemp 文件的内容。
每个 WebTemp.xml 文件都包含一组 Template 元素和 Configuration 子元素,它们可以向编辑器确定所有可实例化的网站定义配置。例如,Configuration 元素可定义标题、描述、用户界面 (UI) 中显示的图像 URL,以及显示类别,该显示类别指定在哪个选项卡上显示“创建网站集”页 Template Selection 部分中的模板。
重要
在 WebTemp 文件中定义的每个 Template 元素中,Name 属性必须包含分配给新文件夹的相同名称。为了避免与已经在 SharePoint Server 2010 中使用的 ID 发生冲突,请为 ID 属性使用大于 10,000 的唯一值。
下面的示例使用 WebTemp.xml 文件中的两个 Configuration 元素来定义用于实例化网站的不同网站定义配置,一个用于研究协作网站,另一个用于研究文档工作区网站。此示例在一个网站定义中只使用了两个配置,但是您可以在一个 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 属性。此 ID 和 Template 元素中的 Name 属性值的组合提供对特定 Onet.xml 文件中的特定 Configuration 元素的内容的引用。在此示例中,Name 属性包含 RESEARCH,ID 属性包含 0 和 1,这两个值引用 Onet.xml 中 ID 为 0 或 1 的 RESEARCH 网站定义和配置。
您可能需要重置 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 Server 2010)。