none
Подход к разработке решений SharePoint RRS feed

  • Вопрос

  • Добрый вечер.

    Волею судеб столкнулся с Sharepoint. Далее упрощенная ситуация.

    Необходимо разработать решение.

    Создаю решение в VS. Добавляю столбец сайта, тип контента с этим столбцом, список, в который добавляю созданный тип контента. Разворачиваю. Возникает необходимость внести изменения в решение. Добавляю еще один столбец сайта, добавляю его в тип контента, список не изменяю. Разворачиваю.

    Результат: потеряны данные, внесенные в список и, как я понимаю, все объекты пересозданы.

    Вопрос: каков подход к разработке решение для SP без потери данных? Как создать/развернуть решение без пересоздания объектов, а с измененим существующих? Можно ткнуть носом в какой-нибудь мануал или how-to?

    27 сентября 2016 г. 20:08

Ответы

  • Добрый день,

    если у вас стоит задача сделать upgrade решения, то его надо не переразворачивать, а обрабатывать все вручную в FeatureUpgrading.

    В definition добавляете экшен:

          <CustomUpgradeAction Name="UpdateSomething">
            <Parameters>
              <Parameter Name="PassSomeValue">This is a string</Parameter>
            </Parameters>
          </CustomUpgradeAction>

    И далее в коде делаете все свои действия:

    public override void FeatureUpgrading(SPFeatureReceiverProperties properties, string upgradeActionName, System.Collections.Generic.IDictionary<string, string> parameters)
    {
        SPWeb parentWeb = (SPWeb)properties.Feature.Parent;
        switch (upgradeActionName)
        {
            case "UpdateSomething":
                string someValue = parameters["PassSomeValue"];
                // тут ваш код по апгрэйду решения
                break;
            default:
                break;
        }
    }

    Почитать: Feature upgrade (part 1) - fundamentals

    И далее весь цикл про версионность и upgrade решения.



    MS,MCTS,MCP,MCPD: SharePoint Developer 2010



    28 сентября 2016 г. 0:31