Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   MSBuild und Versionsnummer per Commandozeilenparameter übergeben (https://www.delphipraxis.net/188644-msbuild-und-versionsnummer-per-commandozeilenparameter-uebergeben.html)

Bernhard Geyer 24. Mär 2016 07:37

MSBuild und Versionsnummer per Commandozeilenparameter übergeben
 
Wir haben einen Jenkins-Server laufen und Compilieren hier unsere Exe (Delphi XE6)
Ich würde gerne einen Nightly-Build noch aufsetzen so das alle nacht alle Exes neu kompiliert werden.
Als Versionnummer würde ich gerne das aktuelle Datum (2016.03.24) als Versionsnummer verwenden um hierrüber einfach die Nightly-Buils zu erkennen.

Wie mache ich das am geschicktesten? Wie kann ich MSBuild die Versionsnummer als Kommandozeilenparameter übergeben?

Ralf Kaiser 24. Mär 2016 08:23

AW: MSBuild und Versionsnummer per Commandozeilenparameter übergeben
 
Solche Parameter kann man als MSBuild-Properties übergeben. Dazu in Jenkins im Feld "Command Line Arguments" für den MSBuild-Schritt so etwas angeben:

Code:
/t:TARGETNAME /p:PROPERTY1=Test1 /p:PROPERTY2=Test2 /p:VERSION=V1.2.345.0 /verbosity:minimal

Bernhard Geyer 24. Mär 2016 08:44

AW: MSBuild und Versionsnummer per Commandozeilenparameter übergeben
 
Zitat:

Zitat von Ralf Kaiser (Beitrag 1333721)
Solche Parameter kann man als MSBuild-Properties übergeben. Dazu in Jenkins im Feld "Command Line Arguments" für den MSBuild-Schritt so etwas angeben:

Code:
/t:TARGETNAME /p:PROPERTY1=Test1 /p:PROPERTY2=Test2 /p:VERSION=V1.2.345.0 /verbosity:minimal

Danke. Target verwende ich schon. /p:VERSION wäre dann das relevante

Ralf Kaiser 24. Mär 2016 08:47

AW: MSBuild und Versionsnummer per Commandozeilenparameter übergeben
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1333724)
Danke. Target verwende ich schon. /p:VERSION wäre dann das relevante

Bitte beachten: das
Code:
/p:VERSION
war nur ein Beispiel mit dem
Code:
/p:...
werden generell Properties von der Kommandozeile aus übergeben. Das "VERSION" hat in MSBuild keine spezielle Funktion sondern muss (natürlich) vom Buildscript entsprechend behandelt werden.

himitsu 24. Mär 2016 11:28

AW: MSBuild und Versionsnummer per Commandozeilenparameter übergeben
 
In unserem Finalbuilder lasse ich eine Ressource-Datei generieren, mit dem Manifest und der Versionsnummer din.
Dinge wie die aktuelle Versionsnummer werden per Platzhalter/Variablen da eingefügt, dann die .RC kompiliert und natürlich noch per
Delphi-Quellcode:
{$RESOURCE ...}
ins Programm eingebunden.
(Manifest und Versionsinfo sind in den Projektoptionen deaktiviert)

Bei uns kommt da unsere Programmversion und die Revisionsnummer, sowie der Pfad (Verzeichnisname) vom SVN mit rein, damit wir die Kundenversionen zuordnen können, von wo sie genau her kommen.

jaenicke 24. Mär 2016 16:29

AW: MSBuild und Versionsnummer per Commandozeilenparameter übergeben
 
Wir nutzen eine Datenbank, in der alle Tools mit Versionsinfos usw. stehen. Ein Tool setzt dann nach dem Build diese Versionsinfos und aktualisiert die Build Nummer in der DB dabei.
Dieses Tool bekommt übergeben, was für ein Build es ist (Debug oder Release) usw., so dass zum Beispiel eine spezielle Version durch einfache Änderung in der DB vor dem Build erzeugt werden kann. Und alles wird zentral gesteuert.

Ralf Kaiser 24. Mär 2016 17:21

AW: MSBuild und Versionsnummer per Commandozeilenparameter übergeben
 
Bei uns generiert das MSBuild-Script das vom Jenkins gestartet wird die Versionsresource. Dazu wird aus einem GIT-Repository eine Konfigurationsdatei geholt, die Versionsnummer hochgezählt, die Resource erstellt und die Konfigurationsdatei wieder ins GIT commited und gepusht. Jeder Build-Typ hat seine eigene Konfigurationsdatei im Repository, so dass die Versionsnummern immer zum jeweiligen Build passen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz