RCStamp - Die Versionsnummer in einem Ressourcenscript setzen

Ich habe gerade ein kleines Tool gefunden, nach dem ich schon lange gesucht habe. Meine bevorzugte Entwicklungsumgebung ist Delphi oder wie sie neuerdings heißt Borland Developer Studio. Benutzt man die VCL legt die IDE automatisch eine Ressourcendatei an, in der sie das Anwendungsicon ablegt und, wenn man es in den Projektoptionen aktiviert, auch die Versionsnummer. Hier hat man die Option, dass mit jedem Build automatisch auch die Buildnummer inkrementiert wird. Eine feine Sache das.

Nun verzichte ich aber ab und an mal auf die VCL und benutze die reine WinAPI um kleinere, nicht so umfangreiche Programme zu schreiben. Und da kommt das Problem: Verzichtet man auf die VCL, hat man in der Regel auch nicht die automatisch erzeugte Ressourcendatei mit der Versionsnummer. Und somit auch nicht die Möglichkeit die Versionsnummer automatisch hochzählen zu lassen. Es bleibt einem also nichts anderes übrig, als das Ressourcenscript mit einem Ressourceneditor zu öffnen, die Versionsnummer anzupassen, das Ressourcenscript abzuspeichern und letztendlich neu zu kompilieren. (Ein kleiner Bug in der IDE macht noch einen weiteren Schritt erforderlich, doch den unterschlagen wir mal.) Letztendlich also alles in allem recht umständlich.

Hier kommt nun das kleine Helferlein ins Spiel. Es ist eine einfache Konsolenanwendung, welche die Versionsnummer im Ressourcenscript erhöhen (oder nach Wunsch, sogar erniedrigen) kann. Das Programm heißt RCStamp [1] und gefunden habe ich es auf Code Project [2]. Näheres zur Benutzung und den Möglichkeiten auf der verlinkten Webseite.

Um dieses kleine Helferlein effektiv einzusetzen, braucht es allerdings noch eine Kleinigkeit. Delphi (6 Personal) bietet leider nicht die Möglichkeit andere Programme oder Scripte in den Buildprozess mit einzubinden. Um dies zu erreichen, muss man den Weg über eine Batch-Datei gehen. In dieser Batch-Datei ruft man dann seine Tools und Scripte einfach auf und kompiliert dann das ganze Projekt mit dem Kommandozeilenkompiler von Delphi. Ein mögliches Batch-Script, wie ich es nutze, könnte so aussehen:

@rcstamp resources\resource1.rc *.*.*.+
@brcc32 resources\resource1.rc resources\-foresource1.res
@dcc32 Usermanager.dpr
@upx -9 ~bin\Usermanager.exe
pause

Als erstes wird mit RCStamp die Buildnummer um eins inkrementiert, dann werden die Ressourcen kompiliert. Als nächstes wird der Kommandozeilenkompiler aufgerufen und zum Schluss wird die Exe noch mit UPX [3] gepackt. Damit der Kommandozeilenkompiler die zugehörigen Units findet und die Ausgabeverzeichnisse berücksichtigt, stellt man dies einmal in den Projektoptionen ein und speichert das Projekt. Dann wird eine cfg-Datei erzeugt, die dann auch der Kommandozeilenkompiler für seine Einstellungen nutzt.

Ich hoffe, ich habe dem ein oder anderen Programmierer hiermit einen kleinen Tipp geben können. Oder um es mit den Worten eines Freundes [4] zu sagen:

May the source be with you, stranger ....

Ich bin dein Vater.


2010-12-29T23:44:54 +0100, mail+homepage[at]michael-puff.de