Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
0800 1 255 255

Deployment von Sharepoint-Anwendungen zur Entwicklungszeit

Mit den Visual-Studio-Erweiterungen für Sharepoint wird der Entwickler schon sehr gut beim Deployment auf sei­nem Entwicklungssystem unter­stützt. Ein Nachteil ist jedoch, dass der Deployment-Prozess recht lang dau­ert. Der Grund ist, dass der Workflow in eine Solution ver­packt und deployed wird.

Um das Deployment wäh­rend der Entwicklung zu beschleu­ni­gen, kann direkt nach dem Build eine Batch-Datei aus­ge­führt wer­den, die diese Aufgabe über­nimmt. Post-build events wer­den direkt in den Projekteigenschaften unter "Build Events" kon­fi­gu­riert. Um eine Batch-Datei auf­zu­ru­fen ist fol­gen­der Befehl not­wen­dig:

call "$(ProjectDir)\PostBuildEvent.bat"

Um die Batch-Datei mög­lichst gene­risch zu gestal­ten ste­hen diverse Makros zur Verfügung, die als Parameter über­ge­ben wer­den kön­nen.

Folgende Aktionen sind per Batch aus­zu­füh­ren:

  1. Assembly zum GAC hin­zu­fü­gen mit­tels GACUtil
  2. Kopieren von Dateien in den 12-Ordner von Sharepoint
  3. Kopieren von Dateien direkt in die Sharepoint-Datenbank. Dies kann mit­tels UNC-Pfad gesche­hen. Bsp: \\server\website1\documents
  4. Deaktivieren des Features
  5. Deinstallieren des Features
  6. Installieren des Features
  7. Aktivieren des Features
  8. IISRESET

Sollte es nur ein Webpart sein, kön­nen die Punkte 4–7 aus­ge­las­sen wer­den. Alternativ kann die DLL auch ins BIN-Verzeichnis von Sharepoint kopiert wer­den, anstatt sie im GAC zu deployen. Die Verzeichnisse kön­nen mit­tels Umgebungsvariablen und der oben bereits erwähn­ten Makros sys­tem­un­ab­hän­gig ermit­telt wer­den. Mit dem eige­nen Deployment lässt sich wäh­rend der Entwicklung viel Zeit spa­ren…

Related Posts

Hallo,

Ist es mög­lich in der PostBuildEvent.bat Datei auch Makros zu ver­wen­den?
Ich habe da ein Problem, ich will ein PostBuildEvent.bat in der z.B. sowas steht:
if exist C:Programme…$(UserName)…bin copy $(TargetDir)$(TargetName).* C:Programme…$(UserName)…bin
(Wobei "…" kor­rekte Pfade dar­stel­len sol­len.)
Aber anschei­nend wird in einem call z.B. $(TargetDir) usw. nicht durch das Makro ersetzt.

Gibt es dazu eine Lösung?

Avatar Kai-Uwe Gärtner

Innerhalb der Batch-Datei kön­nen die Platzhalter mit $(..) nicht ver­wen­det wer­den. Man kann diese aber der Batch-Datei als Parameter über­ge­ben und die­sen dann aus­wer­ten:

call “$(ProjectDir)PostBuildEvent.bat” $(TargetDir) …

Der Zugriff erfolgt dann über die nor­ma­len Batch-Funktionen.

Comments are closed.

Pin It on Pinterest