A differenza di un classico progetto Asp.Net in cui il deploy delle librerie avviene manualmente nella bin di progetto o in Global Assembly Cache (GAC), nelle solution di Sharepoint è possibile scegliere in fase progettuale dove andranno a finire le dll quando verrà installata la solution (WSP).
Mantenendo un atteggiamento tradizionale alle applicazione Asp.Net, è possibile includere le librerie direttamente nel progetto wsp di Sharepoint, in modo da pubblicare gli assemblies direttamente nella posizione scelta (bin directory o GAC).
Un bel vantaggio non doversi ricordare di portarsi dietro componenti aggiuntivi, avendo a disposizione un punto centralizzato di deploy.
Ma cosa succede se dovessimo rimuovere la nostra solution dalla web application di Sharepoint?
Come accade in fase di installazione, anche la rimozione della solution agisce sulle librerie esterne pulendo dal target di deploy i componenti aggiunti al momento della pubblicazione.
Cosa accadrebbe però se un componente risulta condiviso dalle due solution, e una delle due viene rimossa?
La seconda solution non troverebbe più la referenza e genererebbe un problema in fase di runtime.
Di seguito viene riportata la soluzione per ovviare questo problema.
- Creiamo un nuovo progetto Sharepoint e aggiungiamo la referenza al componente da utilizzare (es. log4net.dll).
- Nelle proprietà del progetto spuntiamo l'opzione di non inclusione della dll di progetto compilata (VT.Log4net.dll) nel nostro package.
- Cliccare, aprire le impostazione del packege e aggiungere l'assembly coinvolto.
- Scegliere il target di pubblicazione (GAC o bin directory) e aggiungere i safe control se necessario.
Il nostro WSP a questo punto conterrà un assembly che vivrà di vita propria potrà essere eliminato o installato indipendentemente dalle solution dove è referenziato.
Nessun commento:
Posta un commento