Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#7

AW: Subversion Revision in die Compilierung aufnehmen

  Alt 1. Jun 2012, 10:55
Selbst das aufrufen eines externen Tools würde ich mit einem Execute-Task in einem eigenen Target machen. Hier kann man wenigstens noch saubere Fehlerbehandlung machen. Die Pre- und Post-Build Events sind zu Fehleranfällig, zu unflexibel und werden gerne für Dinge mißbraucht, die als eigenes Target viel einfacher zu realisieren (und auszuwerten!) sind.

Zudem kann man die Reihenfolge im Target beeinlussen. Pre- und Postbuild Steps passieren an zwei definierten Positionen ganz am Anfang und ganz am Ende, und lassen sich nicht ändern.

Ein Target kann man mittels beforeTargets / afterTargets genau dort in den Build-Prozess integrieren wo es Sinn macht: Zum Beispiel nur dann, wenn die ersten paar Targets schon durchgelaufen sind. Wenn MSbuild dann z.B. feststellt dass keine Files seit dem letzten Build geändert wurden, würden bestimmte Steps übersprungen und z.B. direkt zum Linken übergegangen (spart einiges an Zeit). Wenn ein Pre-Build Event nun aber das File immer ganz am Anfang anfasst, wird auch immer komplett neu gebaut.

Das heisst durch den falschen Gebrauch dieser Pre- und Post-Build events sorgt man ohne es zu wissen gerne für einen ordentlichen Zeitverlust und sorgt dafür, dass bestimmte andere Features in MSBuild nicht mehr funktionieren.

Generell sind Pre- und Post-Build Events also eher in der Kategorie 'potentiell Böse. Sollte man nur Nutzen wenn man *genau* weiss, was man damit tut' einzustufen.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat