Share via


要素を既存の機能に追加する

最終更新日: 2010年9月21日

適用対象: SharePoint Foundation 2010

新しい要素を既存の機能に追加する場合、基本的な機能アップグレード シナリオに以下の手順を含める場合があります。

新しい要素を既存の機能に追加する

  1. Version 属性が Feature.xml にない場合は追加し、その属性を適切な値 (例: 既存のバージョンが 1.0.0.0 の場合は Version="2.0.0.0") に設定します。バージョン番号を増加しない場合、機能アップグレード コードは呼び出されません。

  2. <UpgradeActions> セクションを Feature.xml ファイルに追加します。

  3. 機能に追加する新しいすべての要素を含む新しい Elements.xml ファイルを作成し、一意の名前 (例: Elements2.xml) を付けます。

  4. 次の例のように、Elements2.xml ファイルを、メインの <ElementManifests> セクション、および <UpgradeActions> セクション内の <ApplyElementManifests> セクションで参照します。

    <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 未満のバージョン番号を持つ、機能のすべてのインスタンスに対するクエリを実行します。Elements2.xml ファイル内のすべての要素が、既存のバージョン "1" の機能インスタンスに対して増分で準備されます。エラーが発生しない場合、データベース内で機能のバージョン番号が更新されます。バージョン "1" の機能の特定のインスタンスをアップグレードしている間にエラーが発生した場合、その機能インスタンスはスキップされ、データベース内のバージョン番号は更新されません。以降のファーム アップグレードで、その機能インスタンスがアップグレードされていないことが検出され、アップグレードが試みられます。