sábado, 4 de mayo de 2019

Modificar una solución de un sitio de SharePoint y volver a usarla

Esta semana por una serie de problemas con los tipos de contenidos, hemos creado, borrado y vuelto a crear un tipo de contenido con el mismo nombre que tenía antes. Todo ello, para utilizar un sitio como plantilla. Al ir a crear un sitio utilizando esa plantilla (Solución en SharePoint) he recibido el siguiente mensaje:


En mi caso, se debe a que aunque sólo es utilizando el nuevo tipo de contenido, internamente en el sitio queda una referencia a los tipos de contenidos utilizados. Y como todo en SharePoint, lleva una referencia de tipo numérico.

Lo que hemos hecho es acceder a la raiz de nuestra colección de sitios y acceder al sitio donde se almacenan las soluciones:

http://misitio/_catalogs/solutions/Forms/AllItems.aspx?InitialTabId=Ribbon%2ESolution&VisibilityContext=WSSTabPersistence

He descargado la solución haciendo clic en el nombre de la misma. Esto me permite descargar un archivo con la extensión WSP. Lo renombre a la extensión ZIP y lo descomprimo con 7ZIP.

Observaré una tenemos una serie de carpetas como:


Lo siguiente que hemos hecho es lanzar Notepad++ y buscar la referencia al tipo de contenido que tenemos duplicado:


Eliminaremos la referencia a la que ya no utilizamos, para eso hemos buscado en los tipos de contenido de nuestra colección de sitios el tipo de contenido que tenemos ahora y en la URL hemos encontrado algo como:

http://misitio//_layouts/15/ManageContentType.aspx?ctype=0x010010D822ECD615024BB1FFCE750764AA52

De donde se que el tipo de contenido que debo de dejar es que acaba en 52 y borrar la etiqueta completa ContentType que acaba en D6.

Parece que ya lo tenemos, pero no. Ahora si volvemos a comprimirlo y cambiarle la extensión a WSP, veremos que nos da un error de que no tiene el CAB correspondiente.

Para ello, lo que haremos será descargar MakeDDF de su página oficial:


Copiaremos el archivo makeddf.exe en la carpeta donde hemos descomprimido el ZIP y lanzaremos un simbolo de comandos, nos posicionaremos en la carpeta correspondiente mediante el comando cd. Y tras ello ejecutaremos algo como:

makeddf.exe /p "Plantilla" /d "Plantilla.ddf" /c "Plantilla.cab"

Esto nos creará un archivo .ddf, tras ello ejecutaremos algo como:

makecab /f Plantilla.ddf

Esto nos creara el archivo .CAB. El cual renombraremos a nuestro deseo y le cambiaremos la extensión a WSP. Y ya por ultimo lo subiremos a nuestra colección de sitios como nueva solución, la cual activaremos desde el entorno de ventana.

Referencia en Inglés: