Процесс обновления надстроек SharePoint

Чтобы добавить новые возможности в надстройку SharePoint, исправить ошибку или устранить уязвимость, вам нужно обновить ее. Обновление надстройки развертывается в пакете надстройки SharePoint так же, как и первая версия надстройки. Процесс обновления надстройки SharePoint позволяет гарантировать сохранность данных, если при обновлении произойдет какой-либо сбой.

Важно!

С помощью системы обновления нельзя изменить тип надстройки. Например, надстройку с размещением в SharePoint невозможно преобразовать в надстройку с размещением у поставщика. Чтобы изменить тип, необходимо перенести данные из старой надстройки в новую. В частности, так как программа тестирования надстроек с автоматически размещением закрыта, надстройку с автоматически размещением нельзя обновить до надстройки с размещением у поставщика. Преобразуйте надстройку SharePoint согласно инструкциям в этой статье.

Процесс обновления надстройки SharePoint

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

В течение 24 часов после того как вы передадите обновление в каталог надстроек организации и в течение недели после его передачи в Магазин Office на странице Контент сайта каждого веб-сайта, где установлена надстройка, рядом с ее пунктом появится указание на то, что для нее доступно обновление. Чтобы обновить надстройку, пользователь может нажать ссылку, как показано на рисунке 1. Доступные обновления также отображаются в пользовательском интерфейсе управления клиента.

Рис. 1. Процесс обновления надстройки для SharePoint

Руководство по обновлению приложения в пользовательском интерфейсе

Совет

При разработке обновления вам не обязательно ждать 24 часа при каждом добавлении новой версии в тестовый каталог надстроек SharePoint. Сведения о том, как быстро обновить надстройку, не ожидая 24 часа, см. в этой статье.

По умолчанию SharePoint проверяет наличие обновлений для установленных надстроек каждые 24 часа. Администратор фермы может указать другое значение для этого периода с помощью указанной ниже команды в консоли SharePoint, где n — количество часов между проверками.

Set-SPInternalAppStateUpdateInterval -AppStateSyncHours n

Если установлено значение 0, проверка осуществляется каждый раз при выполнении задания встроенного таймера Обновление состояния внутренней надстройки (по умолчанию — каждый час). Администраторы ферм могут изменять периодичность выполнения задания таймера или запускать его немедленно в Центре администрирования.

Ниже приведены действия, выполняемые SharePoint после установки обновления надстройки пользователем. Эти события происходят не обязательно в указанном порядке, некоторые из них могут быть одновременными. Если обновление завершается с ошибкой, происходит полный откат.

  • SharePoint выдает пользователю запрос на подтверждение изменений, запрашиваемых надстройкой.

  • SharePoint делает надстройку временно недоступной для пользователей.

  • Если надстройка включает пакет решения SharePoint (с расширением WSP) и содержимое этого пакета как-либо изменяется, SharePoint делает следующее:

    • создает резервную копию сайта надстройки (но в SharePoint Online, а также локальной среде SharePoint 2016 и более поздних версий резервные копии фактических данных в списках SharePoint создаются, только если при обновлении изменяется схема списка);

    • тестирует обновление резервной копии;

    • если тестирование завершается успешно, обновляет исходный сайт надстройки; обратите внимание, что для обновления компонентов и других частей сайта надстройки используется новый WSP-файл в пакете надстройки (элементы обновления схемы компонентов были расширены в SharePoint).

  • SharePoint выполняет веб-службу UpgradedEventEndpoint, если она зарегистрирована в манифесте надстройки.

    Примечание.

    Если надстройка размещается у поставщика, вы должны предоставить логику обновления для всех компонентов надстройки, которые не связаны с SharePoint. В большинстве случаев эти компоненты обновляются отдельно от обновления самой надстройки SharePoint, аналогично тому, как они устанавливаются отдельно от установки надстройки. Но в случае обновления надстройки SharePoint пользователем возможны определенные изменения. Эту логику может использовать веб-служба UpgradedEventEndpoint или логика "первого запуска после обновления" самой надстройки.

  • SharePoint восстанавливает доступ к надстройке и ее компонентам.

Примечание.

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

Переход со старой надстройки на новую

В некоторых ситуациях может потребоваться заменить старую надстройку совершенно новой, вместо того чтобы обновлять ее. Новая надстройка может иметь то же название, что и старая, так как оно знакомо пользователям. Однако в манифесте надстройки для нее нужно задать новый код продукта, и она будет отображаться в общедоступном Магазине Office и на странице Добавление надстройки веб-сайтов SharePoint как отдельный элемент исходной версии.

Примечание.

Элементы в каталоге надстроек организации различаются по имени файла пакета надстройки, а не по коду продукта или имени надстройки. Если имя файла пакета новой надстройки совпадает с прежним, новая надстройка заменяет старую в каталоге надстроек, и последняя больше не отображается на странице Добавление надстройки. Если при загрузке пакета надстройки в каталог включено управление версиями, старая версия файла (т. е. старое приложение) остается доступной в журнале элемента. Вы можете скачать старый пакет надстройки или вернуться к нему, отменив изменения, но старая и новая надстройки не могут одновременно находиться в каталоге или на странице Добавление надстройки, имея одинаковое название файлов.

В некоторых случаях может потребоваться перенести данные. Например, новая надстройка может использовать База данных SQL Microsoft Azure, схема которой отличается от схемы старой надстройки. Либо в новой надстройке может применяться другой механизм хранения данных, например внешняя база данных вместо списков SharePoint. В этом случае вам следует реализовать код для переноса данных.

Если старые данные доступны удаленному обработчику событий, логику миграции можно реализовать в веб-службе InstalledEventEndpoint новой надстройки. Кроме того, если новая надстройка имеет доступ к старым данным, можно поместить логику миграции в код, который выполняется при первом запуске новой надстройки пользователем. Если к старым данным не удается получить доступ к удаленным обработчикам или новой надстройке, можно создать обновление старой надстройки, которая добавляет возможность экспорта данных и пользовательский интерфейс для этой возможности. Пользователи сначала обновят старую надстройку, а затем используют ее для экспорта данных в расположение, где новая надстройка может получить к ней доступ. Вы включаете возможность и пользовательский интерфейс для импорта данных в новой надстройке.

В принципе, в новой надстройке вы можете использовать внешние источники данных, вычислительные и другие внешние компоненты, которые использовались в старой надстройке. Но учтите, что при удалении Надстройка SharePoint инфраструктура SharePoint удалит все установленные компоненты. Соответственно, рекомендуется использовать для Надстройка SharePoint только установленные им компоненты или внешние компоненты, которые не были установлены инфраструктурой SharePoint.

Примечание.

Рекомендуем использовать элемент InstalledEventEndpoint или UpgradedEventEndpoint для установки компонентов и элемент UninstallingEventEndpoint — для их удаления. Это соответствует принципам разработки, согласно которым надстройки должны сохранять автономность и удаляться полностью. При этом не следует удалять данные, которые могут пригодиться пользователю после удаления надстройки. Данными считаются созданные надстройкой веб-сайты, за исключением сайта надстройки.

Если и старая, и новая надстройки включают сайт надстройки, при установке новой надстройки следует создать для него новый сайт. По этой причине не следует использовать разметку XML, связанную с обновлением, в схеме компонентов SharePoint. Эта разметка не работает, поскольку существующие компоненты SharePoint не обновляются: имеющаяся надстройка заменяется новой.

См. также