Когда вы добавляете новую функцию в свой проект VS SharePoint, Visual studio инициализирует вашу функцию с версией 0.0.0.0.
В окне свойств вы можете установить номер версии для вашей функции.
Если вы хотите обновить существующую функцию, вам нужно будет определить диапазон версий, для которых вы хотите, чтобы ваши действия по обновлению (код, новый манифест, ...) происходили.
Например: вы развернули свою функцию без изменения номера версии. Ваша текущая развернутая функция имеет номер версии 0.0.0.0.
Вы хотите обновить свою функцию и установить номер версии 2.0.0.0.
Если вы определяете диапазон версий следующим образом:
<VersionRange BeginVersion="1.0.0.0" EndVersion="2.0.0.0">
Вы заметите, что при вызове SPFeature.Upgrade () ничего не произойдет, поскольку 0.0.0.0 не находится в заданном диапазоне версий.
Если вы используете эту версию диапазона
<VersionRange EndVersion="2.0.0.0">
или
<VersionRange BeginVersion="0.0.0.0" EndVersion="2.0.0.0">
Вы заметите, что ваш приемник событий FeatureUpgrading или другие действия по обновлению будут запущены.
Ваша обновленная функция теперь будет иметь номер версии 2.0.0.0.
Если вы снова вызовете SPFeature.Upgrade, ничего больше не произойдет, потому что 2.0.0.0 превышает определенный диапазон версий. Итак, BeginVersion включен, EndVersion нет.
Каждая функция с номером версии между [0.0.0.0 - 1.x.x.x] будет обновлена, если вы используете последние версии.
Я думаю, вы также можете полностью исключить атрибуты BeginVersion и EndVersion. Тогда ваши обновления будут запускаться при каждом вызове SPFeature.Upgrade (). (Подлежит проверке)
Для получения дополнительной информации: Крис О'Брайен написал интересную серию статей на эту тему, ср. http://www.sharepointnutsandbolts.com/2010/06/feature-upgrade-part-1-fundamentals.html