Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
+49 (0) 351/850 33-0

Deployment von Sharepoint-Anwendungen zur Entwicklungszeit

Mit den Visual-Studio-Erweiterungen für Sharepoint wird der Entwickler schon sehr gut beim Deployment auf seinem Entwicklungssystem unterstützt. Ein Nachteil ist jedoch, dass der Deployment-Prozess recht lang dauert. Der Grund ist, dass der Workflow in eine Solution verpackt und deployed wird.

Um das Deployment während der Entwicklung zu beschleunigen, kann direkt nach dem Build eine Batch-Datei ausgeführt werden, die diese Aufgabe übernimmt. Post-build events werden direkt in den Projekteigenschaften unter „Build Events“ konfiguriert. Um eine Batch-Datei aufzurufen ist folgender Befehl notwendig:

call „$(ProjectDir)\PostBuildEvent.bat“

Um die Batch-Datei möglichst generisch zu gestalten stehen diverse Makros zur Verfügung, die als Parameter übergeben werden können.

Folgende Aktionen sind per Batch auszuführen:

  1. Assembly zum GAC hinzufügen mittels GACUtil
  2. Kopieren von Dateien in den 12-Ordner von Sharepoint
  3. Kopieren von Dateien direkt in die Sharepoint-Datenbank. Dies kann mittels UNC-Pfad geschehen. 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önnen die Punkte 4-7 ausgelassen werden. Alternativ kann die DLL auch ins BIN-Verzeichnis von Sharepoint kopiert werden, anstatt sie im GAC zu deployen. Die Verzeichnisse können mittels Umgebungsvariablen und der oben bereits erwähnten Makros systemunabhängig ermittelt werden. Mit dem eigenen Deployment lässt sich während der Entwicklung viel Zeit sparen…

Hallo,

Ist es möglich in der PostBuildEvent.bat Datei auch Makros zu verwenden?
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 „…“ korrekte Pfade darstellen sollen.)
Aber anscheinend 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önnen die Platzhalter mit $(..) nicht verwendet werden. Man kann diese aber der Batch-Datei als Parameter übergeben und diesen dann auswerten:

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

Der Zugriff erfolgt dann über die normalen Batch-Funktionen.

Kommentar hinterlassen


Pin It on Pinterest