如何:向现有功能中添加元素

上次修改时间: 2010年9月21日

适用范围: SharePoint Foundation 2010

基本功能升级方案可能包括以下过程中列出的步骤,在此过程中会向现有功能中添加新元素。

向现有功能中添加新元素

  1. 可向 Feature.xml 中添加 Version 属性(如果尚未添加),并将其设置为可能的值,例如 Version="2.0.0.0"(如果现有版本为 1.0.0.0)。如果不增大版本号,将不调用功能升级代码。

  2. 可向 Feature.xml 文件中添加 <UpgradeActions> 部分。

  3. 创建一个包含要添加到功能中的所有新元素的新 Elements.xml 文件,并为其指定唯一名称,例如,Elements2.xml。

  4. 在主 <ElementManifests> 部分和 <UpgradeActions> 部分中的 <ApplyElementManifests> 部分中引用 Elements2.xml 文件,如以下示例所示。

    <Feature Id="712224F9-6708-4965-A18C-B73CA86AEFCA"
      Title="MyCoolFeature" 
      Description="My cool feature." 
      Version="2.0.0.0"
      Scope="Site" 
      Hidden="FALSE"
      DefaultResourceFile="core"
      xmlns="https://schemas.microsoft.com/sharepoint/">
      <ElementManifests>
        <ElementManifest Location="Elements.xml" />
        <ElementManifest Location="Elements2.xml" />
      </ElementManifests>
      <UpgradeActions
        <VersionRange EndVersion="2.0.0.0">
        <ApplyElementManifests>
          <ElementManifest Location="Elements2.xml" />
          </ApplyElementManifests>
        </VersionRange>
      </UpgradeActions>
    </Feature>
    

激活版本"2"功能时,将设置 Elements.xml 和 Elements2.xml 文件中的所有元素。在服务器场中运行升级时,功能升级基础结构将查询版本号低于 2.0.0.0 的功能的所有实例;并将为现有版本"1"功能实例增量设置 Elements2.xml 文件中的所有元素。如果不出错,则会在数据库中更新功能版本号。如果在升级版本"1"功能的特定实例时出错,将跳过该功能实例,并且不更新数据库中的版本号。后续的场升级将检测到功能实例尚未升级,并再次尝试对其进行升级。