使用功能部署网站元素 (SharePoint Server 2010)

 

适用于: SharePoint Server 2010

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

本文描述如何使用功能来部署已开发的网站元素自定义项。使用功能,您能够控制可在其中激活和停用网站自定义项的范围,并能够轻易地跨多个服务器场部署自定义项。

本节内容:

  • 什么是功能?

  • 何时使用功能

  • 创建功能

  • 使用 Windows PowerShell 安装和激活功能

什么是功能?

功能 是为 SharePoint Server 2010 定义的各种扩展的容器,它由部署到前端 Web 服务器和应用程序服务器的一组 XML 文件组成。您可以将功能作为解决方案包的一部分进行部署,也可以在 SharePoint Server 网站中单独激活某个功能。

功能减少了创建简单的网站自定义项所涉及的复杂性。通过使用功能,您无需为了更改简单的功能而复制大量代码,因此可以减少前端 Web 服务器中可能出现的版本控制问题和不一致问题。

通过功能可以更加轻松地激活或停用部署过程中所应用的功能,并且管理员仅需在用户界面中打开或关闭特定功能,即可方便地转换网站的模板或定义。

元素是功能中的原子单元。Feature 元素用于在 Feature.xml 文件中定义功能并指定支持功能的程序集、文件、依赖项或属性的位置。一个功能包括一个 Feature.xml 文件和用于描述各个元素的任意数量的文件。在 Onet.xml 文件中使用不同架构中的另一个 Feature 元素来指定,当利用网站定义创建一个网站时激活某个功能。

Feature.xml 文件通常指向一个或多个 XML 文件,这些 XML 文件的顶级 <Elements> 标记包含支持相应功能的元素的定义。SharePoint Server 2010 中的元素通常与 Microsoft Office SharePoint Portal Server 2003 的 Onet.xml 或 Schema.xml 文件中的离散节点相对应。有多种类型的元素,例如自定义菜单项或事件处理程序。

何时使用功能

建议使用功能来部署部分功用、自定义项或对前端 Web 服务器所做的配置更改。通过使用功能,可以很灵活地在其生命周期内管理功用,包括激活、升级和最终停用。

在以下一个或多个应用场景中,则可以使用功能来部署已开发的网站元素:

  • 需要激活和停用   当您在某个功能中部署网站元素自定义项时,可以通过使用 Windows PowerShell 或使用对象模型来安装、激活和停用该功能。也可以通过使用管理中心网站来激活和停用某个功能。

  • 范围的灵活性   您可以针对单个范围(包括服务器场、Web 应用程序、网站集或网站)激活某个功能。

  • 便于进行分布式部署   可以很容易地将某个功能作为解决方案的一部分部署到多个服务器场。

  • 通过功能对象模型进行控制   功能对象模型使您能够指定在给定范围内安装的功能的列表,并控制是否在服务器场和网站级别启用功能。

使用解决方案包将功能进行打包以部署到不同的环境。例如,使用解决方案包在开发人员工作站与集成服务器场之间部署自定义项,也可以在集成服务器场或创作客户端工作站与试验服务器场或生产服务器场之间部署自定义项。

创建功能

当您通过使用浏览器或 SharePoint Designer 在 SharePoint Server 2010 中创建自定义网页时,ASPX 页只能属于运行 SharePoint Server 2010 的服务器的根网站集。若要在某个网站集下创建可用于整个服务器场和所有网站集的网页,请使用一个解决方案将该网页部署到 \14\Template\Layouts 文件夹下(通过使用解决方案清单文件中的 TemplateFiles 元素)。

在服务器场上的最佳做法是,使用解决方案包来部署功能。如果必须重建某个服务器或者在服务器场中另外添加一台服务器,则不必将功能手动添加到每个前端 Web 服务器中。通过使用解决方案包,可以在服务器场内部署新的和已升级的功能并与前端 Web 服务器进行同步,以便该 Web 服务器的状态与服务器场中其他服务器的状态一致。

若要控制一个自定义网页在某个网站集或网站中的可用性,可将该自定义网页部署为一个 SharePoint 功能(作为解决方案的一部分)。在 Feature.xml 文件中可使用模块元素,通过使用网站集和网站范围来部署网页。模块经常用来在网站中实现 Web 部件页。

会自动安装作为解决方案的一部分部署的功能。如果您手动部署功能,则必须安装并激活功能。请参阅下文中的使用 Windows PowerShell 安装和激活功能。

创建和部署自定义功能

  1. 创建一个 Feature.xml 文件。下面是一个示例 Feature.xml 文件,它是为功能提供唯一 ID 和指向 Module.xml 文件所必须的文件。

    <?xml version="1.0"?>
    <Feature Id="8C4DD0CB-5A94-44da-9B7F-E9ED49C2B2DC" Title=
    "Custom Web page"
    Description="This simple example feature adds an ASPX page 
    with a hosted XmlFormView control" 
    Version="1.0.0.0" Scope="Web"
    xmlns="https://schemas.microsoft.com/sharepoint/">
    <ElementManifests>
        <ElementManifest Location="Module.xml"/>
    </ElementManifests>
    </Feature>
    
  2. 创建一个 Module.xml 文件。下面是一个示例 Module.xml 文件,其中包含作为解决方案一部分的页面的相关信息。

    <?xml version="1.0"?>
    <Elements xmlns="https://schemas.microsoft.com/sharepoint/">
        <module name="file" url="" path="">
            <file url="XmlFormViewPage.aspx" type="ghostable"> </file>
        </module>
    </Elements>
    
  3. 将文件 url 值更改为 ASPX 页面的名称。

  4. 在服务器计算机上的功能安装目录中添加一个用于功能定义的子文件夹,此安装目录通常位于 %COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\14\TEMPLATE\FEATURES。

    重要

    针对您为功能定义所创建的子文件夹而言,最佳做法是使用详细的限定名称。这样做可以减少您添加多个具有相同名称的功能并覆盖其他功能的 Feature.xml 文件的可能性。例如,应使用 HR_ContractFinance_Contract,而不是使用 Contract

  5. 将您的自定义 .aspx 页添加到用于功能定义的此子文件夹。

  6. 将 Feature.xml 和 Module.xml 文件添加到相同的位置。

  7. 将功能添加到一个解决方案包。

    您可以使用 Visual Studio 2010 将功能添加到一个解决方案,或者您可以手动将一个 FeatureManifests 元素添加到解决方案 Manifest.xml 文件中。

  8. 创建解决方案包。

    您可使用 Visual Studio 2010 生成解决方案包。您也可以使用 Makecab.exe 工具来创建解决方案包。

  9. 导入和部署解决方案包。

    使用 Windows PowerShellAdd-SPSolution cmdlet 将解决方案添加到解决方案存储区中,然后,使用管理中心网站或使用 Windows PowerShell 从解决方案存储区中来部署解决方案。

有关使用 Visual Studio 2010 将功能添加到解决方案包的详细信息,请参阅创建 SharePoint 解决方案包(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=187035&clcid=0x804)(该链接可能指向英文页面)。有关手动创建解决方案包或使用 Makecab.exe 工具生成包的详细信息,请参阅创建解决方案(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=187036&clcid=0x804)(该链接可能指向英文页面)。有关部署解决方案的详细信息,请参阅部署解决方案包 (SharePoint Server 2010)

使用 Windows PowerShell 安装和激活功能

可以使用 Windows PowerShell 或使用对象模型来安装和激活功能。还可以通过使用“管理 Web 程序功能”页或您想要在其中激活功能的网站集或网站的“功能”页来激活功能。安装功能可使整个服务器场了解其定义和元素,而激活功能可使其在特定范围可供使用。

备注

作为解决方案包的一部分部署的功能会在部署过程中自动安装,不需要手动安装。

在 14\Template\Features 文件夹中安装功能,而且每个功能位于自己的子文件夹中。此文件夹根部的 Feature.xml 文件定义功能的内容。在使用每个功能之前,必须单独安装相应的功能,并且必须在安装之后将其激活(除非该功能的应用范围为服务器场)。如果某个功能的应用范围是服务器场或 Web 应用程序,则会自动将其激活。

若要卸载某个功能以便其定义在服务器场内不再可用,您首先必须使用 Windows PowerShellDisable-SPFeature cmdlet 来停用该功能(除非该功能的应用范围为 Web 应用程序或服务器场)。停用该功能之后,可以使用 Uninstall-SPFeature cmdlet 将其卸载。有关详细信息,请参阅 Uninstall-SPFeature。卸载某个功能之后,重置 Internet Information Services (IIS) 以便更改可以生效。

若要停用某个功能以便在不进行卸载的情况下使其在原始指定的应用范围内实效,您可以使用 Disable-SPFeature cmdlet。有关详细信息,请参阅 Disable-SPFeature

请使用以下过程安装和激活功能。

使用 Windows PowerShell 安装功能

  1. 验证您是否满足以下最低要求:请参阅 Add-SPShellAdmin

  2. 在“开始”菜单上,单击“所有程序”。

  3. 单击“Microsoft SharePoint 2010 产品”。

  4. 单击“SharePoint 2010 Management Shell”。

  5. 在 Windows PowerShell 命令提示符处,键入以下命令:

    Install-SPFeature -path <Path> [-force]
    

    其中:

    • <Path> 是一个有效路径;例如,MyFeature。功能的路径必须是一个指向 14\Template\Features 文件夹名称的文本路径。Feature.xml 文件名称是隐含的,无需提供。

有关详细信息,请参阅Install-SPFeature

备注

我们建议您在执行命令行管理任务时使用 Windows PowerShell。Stsadm 命令行工具已被弃用,仍然包含该工具是为了支持与之前产品版本的兼容性。

使用 Windows PowerShell 激活功能

  1. 验证您是否满足以下最低要求:请参阅 Add-SPShellAdmin

  2. 在“开始”菜单上,单击“所有程序”。

  3. 单击“Microsoft SharePoint 2010 产品”。

  4. 单击“SharePoint 2010 Management Shell”。

  5. 在 Windows PowerShell 命令提示符处,键入以下命令:

    Enable-SPFeature -Identity <FeatureID> [-url] <URLname> [-force]
    

    其中:

    • <FeatureID> 是位于 14\Template\Features 文件夹中的功能文件夹的名称。它必须是一个有效的文件路径;例如,MyCustom。

    • <URLname> 是要为其激活功能的 Web 应用程序、网站集或网站的功能父 URL;例如,http://somesite。

有关详细信息,请参阅Enable-SPFeature

备注

我们建议您在执行命令行管理任务时使用 Windows PowerShell。Stsadm 命令行工具已被弃用,仍然包含该工具是为了支持与之前产品版本的兼容性。