Поделиться через


Практическое руководство. Добавление элементов к существующему компоненту

Дата последнего изменения: 21 сентября 2010 г.

Применимо к: SharePoint Foundation 2010

Когда в существующий компонент добавляются новые элементы, базовый сценарий обновления компонента, скорее всего, будет содержать действия, перечисленные в следующей процедуре.

Добавление новых элементов в существующий компонент

  1. Добавьте атрибут Version в файл Feature.xml, если этот атрибут отсутствует, и задайте для него нужное значение, например Version="2.0.0.0", если существующая версия равна 1.0.0.0. Если не увеличить номер версии, код обновления компонента вызываться не будет.

  2. Добавьте раздел <UpgradeActions> в файл Feature.xml.

  3. Создайте новый файл Elements.xml, содержащий все новые элементы, добавляемые в компонент, и присвойте ему уникальное имя, например Elements2.xml.

  4. Укажите ссылку на файл Elements2.xml как в основном разделе <ElementManifests>, так и в разделе <ApplyElementManifests> раздела <UpgradeActions>, как показано в следующем примере.

    <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" этот экземпляр компонента пропускается и номер версии в базе данных не обновляется. При последующих обновлениях фермы будет обнаружено, что этот экземпляр компонента не был обновлен, и попытка его обновления будет повторена.