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

 

适用于: SharePoint Foundation 2010

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

本文介绍如何使用功能部署开发的网站元素自定义项。通过使用功能,您可以控制能在其中激活和停用网站自定义项的范围,也可以轻松地在多个服务器场之间部署自定义项。

本节内容:

  • 什么是功能?

  • 何时使用功能

  • 创建功能

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

什么是功能?

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

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

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

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

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

何时使用功能

部署各项功能、自定义项或更改前端 Web 服务器配置时,功能是推荐方法。在功能的整个生命周期内(包括激活、升级和最终停用),它都是进行管理的一种灵活方式。

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

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

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

  • 分布式部署的简易性   作为解决方案的一部分,很容易将功能部署到多个服务器场。

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

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

创建功能

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

针对服务器场的最佳做法是使用解决方案包来部署功能。如果必须重建服务器或向服务器场中添加其他服务器,则不必手动将功能添加到每台前端 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 Foundation 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 文件夹中的 Feature 文件夹的名称。它必须是有效的文件路径;例如 MyCustom。

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

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

备注

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