Un file solution (.wsp) di Sharepoint 2007 (WSS3 - MOSS) non è altro che un file .cab con all'interno un file manifest.xml più tutti gli altri file necessari.

Creare un file di solution in 4 passi.

1) Per prima cosa va creato il file manifest.xml (assegnandogli un nuovo SolutionId che è di tipo guid). Il manifest indica a SharePoint come è composta la solution e cosa deve fare con i file contenuti.

XML: manifest.xml

<Solution SolutionId="00000000-0000-0000-0000-000000000000" xmlns="http://schemas.microsoft.com/sharepoint/" >

  <FeatureManifests>
    <FeatureManifest Location="SgartFeature\feature.xml" />
  </FeatureManifests>

  <TemplateFiles>
    <TemplateFile Location="LAYOUTS\Sgart\pagina1.aspx" />
  </TemplateFiles>

  <Assemblies>
    <Assembly Location="SgartFeature.dll" DeploymentTarget="GlobalAssemblyCache" >
      <SafeControls>
        <SafeControl Assembly="SgartFeature, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0000000000000000" Namespace="SgartFeature" TypeName="*" Safe="True" />
      </SafeControls>
    </Assembly>
  </Assemblies>

</Solution>
In questo esempio la solution è composta da:
- una feature (Solution\FeatureManifests\FeatureManifest)
- una pagina aspx (Solution\TemplateFiles\TemplateFile) che verrà copiata sotto ...\12\TEMPLATE\LAYOUTS\Sgart\
- una dll (Solution\Assemblies\Assembly ) da mettere nella gac (attributo DeploymentTarget)

Il tag TemplateFile cosidera come root (per la copia dei file) il percorso:
- %CommonProgramFiles%\Microsoft Shared\web server extensions\12\TEMPLATE
mentre il tag FeatureManifest considera come root il percorso:
- %CommonProgramFiles%\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES

2) Il secondo passo è creare un file con estensione .ddf (Diamond Directive File), che serve a fornire al comando makecab.exe l'elenco di tutti i file che vanno inclusi nella solution (file .wsp). I file possono essere di qualsiasi tipo, ovvero: dll, aspx, xml, css, feature ...
.OPTION EXPLICIT     ; Generate errors 
.Set CabinetNameTemplate=solution.wsp     
.Set DiskDirectoryTemplate=CDROM ; All cabinets go in a single directory
.Set CompressionType=MSZIP;** All files are compressed in cabinet files
.Set UniqueFiles="ON"
.Set MaxDiskSize=CDROM
.Set Cabinet=on
.Set DiskDirectory1=.

.Set DestinationDir=

dirSolution\manifest.xml
dirSolution\SgartFeature.dll

.Set DestinationDir=SgartFeature

dirSolution\SgartFeature\feature.xml
dirSolution\SgartFeature\elementManifest.xml
dirSolution\SgartFeature\SgartFeature.webpart

.Set DestinationDir=LAYOUTS\Sgart

dirSolution\pagina1.aspx

Le principali direttive del file ddf sono:
- CabinetNameTemplate il nome del file solution che verrà generato
- DestinationDir la directory che verrà creata nel file wsp
dopo ogni DestinationDir segue l'elenco (completo di percorso di origine) dei file da aggiungere.

In alternativa all'uso di DestinationDir, è possibile elencare il percorso del file di origine separato da uno spazio seguito dal percorso di destinazione (pathFileFisico pathFileVirtualeNelFileWsp), esempio:
dirSolution\manifest.xml manifest.xml

dirSolution\SgartFeature\feature.xml SgartFeature\feature.xml

Con la parola dirSolution mi riferisco alla cartella in cui avete i vostri file

Vedi anche Dimensione limitata dei file di solution (WSP)

3) a questo punto possiamo generare il file wsp

DOS / Batch file

c:\windows\system32\makecab.exe /F solution.ddf
Il file makecab.exe può essere scaricato da qui Microsoft Cabinet SDK

4) installiamolo

DOS / Batch file: installSolution.bat

set SPAdminTool=%CommonProgramFiles%\Microsoft Shared\web server extensions\12\BIN\stsadm.exe
set PackageFile=%~dp0solution.wsp

"%SPAdminTool%" -o addsolution -filename "%PackageFile%"

"%SPAdminTool%" -o deploysolution -name "%PackageName%" –allcontenturls –local -allowGacDeployment
I parametri possibili per stsadm.exe sono:
- addsolution aggiunge il file wsp nel DB
- deploysolution prende la solution dal DB, estrae i file e li installa
- retractsolution elimina i file precedentemente installati con deploysolution (comprese le dll nella gac)
- deletesolution elimina il file wsp dal DB
per maggiori info stsadm.exe /?
Non è possibile fare l'update di una solution quindi bisogna lanciare in sequenza: retractsolution, deletesolution, addsolution e infine deploysolution

Il vantaggi principali delle solution sono:
  • avere un unico file compresso che contiene tutto il necessario
  • memorizzare il tutto in un unico punto, ovvero il DB di Configrazione di SharePoint
  • possono essere facilmente installate e distribuite su più FrontEnd
  • nel caso reinstalli il server di FrontEnd, tutte le solution sono installate automaticamente (ovvero vengono prese dal DBConfig, decomprese in una cartella temporanea, e da qui vengono installate le dll nella GAC, le feature nel relativo percorso, ecc...)
I file sono solo un esempio, non funzionante, per fare una panoramica sulla sintassi. Prossimamente maggiori info.
Tags:
SharePoint497 SharePoint 2007218
Potrebbe interessarti anche: