Замена приемников компонентов в решениях песочницы
Получатели компонентов обычно используются для применения различных типов конфигураций или параметров к сайтам SharePoint при активации компонента или при создании сайта (если компонент связан с шаблоном сайта или веб-шаблоном). Приемники компонентов развернуты с помощью решений песочницы в SharePoint Online; Однако, так как настройки на основе кода больше не могут использоваться, необходимо использовать альтернативную структуру.
Подход, который вы используете для обработки приемников функций в SharePoint, немного отличается в модели надстроек SharePoint, чем в случае с кодом полного доверия или в решениях с закодированных песочниц. Необходимо изменить решение таким образом, чтобы использовать удаленные API (CSOM/REST) для применения необходимых конфигураций к сайтам.
Примечание.
Изолированные решения на основе кода устарели в 2014 году. Процесс полного удаления этой возможности начался с SharePoint Online. Изолированные решения на основе кода также не рекомендуются к использованию в SharePoint 2013 и SharePoint 2016.
Варианты замены приемников функций
Способ | Рекомендации по проектированию и дополнительные сведения |
---|---|
Настройка на основе PowerShell |
|
Настройка на основе кода |
|
Примечание.
Если вы хотите предоставить автоматический способ применения необходимого удаленного кода в рамках логики создания дочернего сайта, необходимо переопределить ссылку дочернего сайта с помощью пользовательских действий. Этот параметр доступен только для сайтов, использующих классическую модель для библиотек и списков.
Применение настроек к сайтам
С помощью PowerShell
Ниже приведен простой скрипт, который использует PnP PowerShell для отправки файла цвета темы с компьютера в SharePoint Online, а затем активации файла на сайте SharePoint.
В этом примере используется PnP PowerShell, который предоставляет более 150 дополнительных командлетов PowerShell, предназначенных для настройки сайта и управления ресурсами.
Connect-SPOnline –Url https://yoursite.sharepoint.com/ –Credentials (Get-Credential)
Add-SPOFile -Path c:\temp\company.spcolor -Folder /_catalogs/theme/15/
Set-SPOTheme -ColorPaletteUrl /_catalogs/theme/15/company.spcolor
Примечание.
PnP PowerShell — это решение с открытым исходным кодом, поддержка которого предоставляется активным сообществом. Для инструментов с открытым исходным кодом не существует соглашения об уровне обслуживания в отношении поддержки корпорацией Майкрософт.
Использование кода
Ниже приведен простой пример кода, в котором используется CSOM SharePoint Online для активации пользовательской темы путем отправки ресурсов на сайт SharePoint, а затем активации настраиваемой темы.
В этом примере используется основной компонент CSOM PnP, который расширяет встроенные стандартные операции, вводя дополнительный набор методов расширения для общих операций. Аналогичные операции можно выполнять с помощью собственной CSOM, но код будет значительно сложнее.
// Upload assets to theme folder.
clientContext.Site.RootWeb.UploadThemeFile(
HostingEnvironment.MapPath(string.Format("~/{0}", "Resources/Themes/SPC/SPCTheme.spcolor")));
clientContext.Site.RootWeb.UploadThemeFile(
HostingEnvironment.MapPath(string.Format("~/{0}", "Resources/Themes/SPC/SPCbg.jpg")));
Web web = clientContext.Web;
// Loading RootWeb.ServerRelativeUrl property.
clientContext.Load(clientContext.Site, w => w.RootWeb.ServerRelativeUrl);
clientContext.ExecuteQuery();
// Let's first upload the contoso theme to host web, if it does not exist there.
web.CreateComposedLookByUrl("Contoso",
clientContext.Site.RootWeb.ServerRelativeUrl + "/_catalogs/theme/15/SPCTheme.spcolor",
null,
clientContext.Site.RootWeb.ServerRelativeUrl + "/_catalogs/theme/15/SPCbg.jpg",
string.Empty);
// Setting the Contoos theme to host web.
web.SetComposedLookByUrl("Green");
Совет
При использовании подходов на основе кода рекомендуется использовать модуль подготовки PnP для управления шаблонами, что значительно упрощает разработку.
Удаление решения песочницы, содержащего код приемника компонентов, с сайта
Если решение песочницы содержит логику приемников компонентов для деактивации компонентов и важно, чтобы они выполнялись, убедитесь, что эти функции отключены до отключения поддержки на основе кода в SharePoint Online.
Вы можете удалить решения песочницы из SharePoint Online после отключения поддержки на основе кода, но код получателя компонентов не будет выполнен, даже если компоненты перемещаются с сайта.
При отключении существующего решения песочницы с сайтов все ресурсы или файлы, развернутые с помощью декларативных параметров, не удаляются. Однако функции в решении песочницы автоматически деактивируются, а приемник событий удаляется.