Должен ли FeatureUpgrading использовать последние значения свойств? - PullRequest
0 голосов
/ 26 января 2011

Версия 1.0.0.0 файла Template.xml моей функции выглядела следующим образом:

<?xml version="1.0" encoding="utf-8" ?>
<Feature xmlns="http://schemas.microsoft.com/sharepoint/">
  <Properties>
    <Property Key="AvailableWebTemplates" Value="MPS#0;MPS#1;MPS#2;MPS#3;MPS#4" />
  </Properties>
</Feature>

Новая версия 1.1.0.0 выглядит следующим образом:

<?xml version="1.0" encoding="utf-8" ?>
<Feature xmlns="http://schemas.microsoft.com/sharepoint/">
 <UpgradeActions>
  <VersionRange BeginVersion="1.0.0.0" EndVersion="1.1.0.0">
   <CustomUpgradeAction Name="UpgradeTo1v1"/>
  </VersionRange>
 </UpgradeActions>
  <Properties>
    <Property Key="AvailableWebTemplates" Value="MPS#0;MPS#1;MPS#2;MPS#3;MPS#4;STS#2" />
  </Properties>
</Feature>

Значениеtemplates по-прежнему MPS#0;MPS#1;MPS#2;MPS#3;MPS#4, когда в FeatureUpgrading запускается следующий код:

SPFeatureProperty property = properties.Feature.Properties["AvailableWebTemplates"];
string templates = property.Value;

Почему я не получаю обновленное значение свойства?Это так и должно быть?

1 Ответ

0 голосов
/ 31 января 2011

Это действительно так, как и должно быть: Функция имеет 1 определение и n экземпляров. Код в FeatureUpgrading используется для обновления экземпляров .

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

properties.Feature.Properties["MyProp"] получает значение свойства работающего экземпляра properties.Definition.Properties["MyProp"] получает значение свойства в определении функции .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...