Практическое руководство. Добавление элементов к существующему компоненту
Дата последнего изменения: 21 сентября 2010 г.
Применимо к: SharePoint Foundation 2010
Когда в существующий компонент добавляются новые элементы, базовый сценарий обновления компонента, скорее всего, будет содержать действия, перечисленные в следующей процедуре.
Добавление новых элементов в существующий компонент
Добавьте атрибут Version в файл Feature.xml, если этот атрибут отсутствует, и задайте для него нужное значение, например Version="2.0.0.0", если существующая версия равна 1.0.0.0. Если не увеличить номер версии, код обновления компонента вызываться не будет.
Добавьте раздел <UpgradeActions> в файл Feature.xml.
Создайте новый файл Elements.xml, содержащий все новые элементы, добавляемые в компонент, и присвойте ему уникальное имя, например Elements2.xml.
Укажите ссылку на файл 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" этот экземпляр компонента пропускается и номер версии в базе данных не обновляется. При последующих обновлениях фермы будет обнаружено, что этот экземпляр компонента не был обновлен, и попытка его обновления будет повторена.