jueves, 8 de octubre de 2015

Ojo con las dependencias al desinstalar una solución de granja en SharePoint

Las soluciones de granja de SharePoint siguen siendo requeridas por los clientes con instalaciones On Premises.  Como es una solución de granja afecta a toda la granja de SharePoint y esto incluye las Aplicaciones Web configuradas en la granja a pesar que cuando lo instalé indique que era sobre una aplicación Web en especifico.

El Escenario

AjaxControlToolKit.dll es una libreria que nos ayudará a mejorar los controles disponibles en asp.net y como empresa nosotros la utilizamos en las aplicaciones que entregamos a nuestros clientes sobre SharePoint Server.  Esta libreria no le va bien instalada en el Global Assembly Cache, es mejor instalarla en el directorio bin de la aplicación Web elegida.

Esto lo hacemos especificando en el Package del Proyecto de SharePoint Visual Web Part que incluya el ensamblado a nivel de la WebApplication, como se muestra en la imagen de abajo.

image

El Problema

En esta granja de SharePoint habian otras aplicaciones Web donde habiamos instalado otras soluciones utilizando la libreria AjaxControlToolKit.dll.   Lo que sucedio fue que al actualizar la solución en la granja la desinstalamos y la volvimos a instalar, a través de los comandos uninstall-SPSolution y Remove-SPSolution, eliminó de las otras aplicaciones Web la libreria AjaxControlToolKit.dll.  Y aunque volvimos a instalar la solución que estabamos probando con add-SPSolution y install-SPSolution, no volvio a instalar la libreria en las demás aplicaciones Web.

Los comandos ejecutados para re-instalar fueron los siguientes:

PS C:\> Uninstall-SPSolution –Identity infoware.doc.publicadosui.wsp 

PS C:\> Remove-SPSolution -Identity infoware.doc.publicadosui.wsp

PS C:\> Add-SPSolution –LiteralPath c:\instaladores\infoware.doc.publicadosui.wsp

PS C:\> Install-SPSolution -Identity infoware.doc.publicadosui.wsp -WebApplicat
on http://sitioprueba -GACDeployment

La Solución

Al repotarnos el error el usuario final, lo que hicimos fue copiar la libreria AjaxControlToolKit.dll en las aplicaciones Web que nos reportaron el error.  La solución fue sencilla, pero nos sorprendió la forma de comportarse al desintalar la solución de granja sobre el resto de aplicaciones Web.

Lexión Aprendida

A pesar que dirigimos la instalación a una aplicación Web por cuanto es una solución de Granja necesitamos realizar un respaldo del directorio bin y validar las librerias dependientes que coicidan con la solución que estamos instalando nosotros, y validar que continuen funcionando como lo solian hacer.

Code4Fun & Share2KeepBusy,  Smile

Juan Manuel Herrera Ocheita

No hay comentarios.: