Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los receptores de características se usan normalmente para aplicar diferentes tipos de configuraciones o configuraciones a sitios de SharePoint cuando se activa la característica o cuando se crea el sitio (si la característica está asociada a una plantilla de sitio o una plantilla web). Los receptores de características se han implementado mediante soluciones de espacio aislado en SharePoint Online; sin embargo, dado que ya no se pueden usar personalizaciones basadas en código, debe usar un diseño alternativo.
El enfoque que se usa para controlar los receptores de características en SharePoint es ligeramente diferente en el modelo de complementos de SharePoint que con código de plena confianza o en soluciones de espacio aislado codificado. Debe rediseñar la solución de forma que use las API remotas (CSOM/REST) para aplicar las configuraciones necesarias a los sitios.
Nota:
Las soluciones de espacio aislado basadas en código han quedado en desuso en 2014 y SharePoint online ha iniciado el proceso para quitar esta funcionalidad por completo. Las soluciones de espacio aislado basadas en código también han quedado en desuso en SharePoint 2013 y SharePoint 2016.
Opciones para reemplazar receptores de características
Enfoque | Consideraciones de diseño y más información |
---|---|
Personalización basada en PowerShell |
|
Personalización basada en código |
|
Nota:
Si desea proporcionar una manera automática de aplicar el código remoto necesario como parte de la lógica de creación del subsitio, debe invalidar el vínculo del subsitio mediante acciones personalizadas del usuario. Esta opción solo está disponible para sitios que usan el modelo clásico para bibliotecas y listas.
Aplicación de personalizaciones a sitios
Con PowerShell
A continuación se muestra un script sencillo que usa PowerShell PnP para cargar un archivo de color de tema desde un equipo en SharePoint Online y, a continuación, activar el archivo en el sitio de SharePoint.
En este ejemplo se usa PowerShell PnP, que proporciona más de 150 cmdlets de PowerShell adicionales destinados a la configuración del sitio y la administración de recursos.
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
Nota:
PnP PowerShell es una solución de código abierto con una comunidad activa que ofrece su soporte. No hay ningún contrato de nivel de servicio para el soporte de la herramienta de código abierto de Microsoft.
Uso de código
A continuación se muestra un ejemplo de código simple que usa el CSOM de SharePoint Online para activar un tema personalizado cargando primero los recursos en un sitio de SharePoint y, a continuación, activando el tema personalizado.
En este ejemplo se usa el componente PnP CSOM Core, que amplía las operaciones nativas integradas mediante la introducción de un conjunto adicional de métodos de extensión para operaciones comunes. Puede realizar operaciones similares mediante el uso de CSOM nativo, pero el código sería significativamente más complejo.
// 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");
Sugerencia
Cuando se usan enfoques basados en código, se recomienda usar el motor de aprovisionamiento de PnP para la administración de plantillas, lo que simplifica considerablemente el esfuerzo de desarrollo.
Eliminación de la solución de espacio aislado que contiene el código del receptor de características del sitio
Si la solución de espacio aislado contiene lógica de receptores de características para la desactivación de características y es importante que se ejecuten, debe asegurarse de que estas características se desactivan antes de que se deshabilite la compatibilidad basada en código de SharePoint Online.
Puede desinstalar soluciones de espacio aislado de SharePoint Online después de deshabilitar la compatibilidad basada en código, pero el código del receptor de características no se ejecutaría aunque las características se muevan del sitio.
Al desactivar la solución de espacio aislado existente de los sitios, no se quitan los recursos o archivos implementados mediante opciones declarativas. Sin embargo, las características de la solución de espacio aislado se desactivan automáticamente y se quita el receptor de eventos.