Fortuna Entwickler Blog

Hier wird Ihnen geholfen

Automatische Versionsnummernvergabe

Mit fincon wurde vereinbart, daß wir eine Versionsnummer in unseren ExternalServices einführen. VisualStudio Projekte bieten grundsätzlich die Möglichkeit, eien Versionsnummer über die AssemblyInfo zu pflegen, dies aber nur manuell: man muss die Datei ändern dann wird beim nächsten Build die angegebene Versionsnummer in die Binary übernommen. Dieses Vorgehen ist natürlich fehleranfällig bzw. es kann vergessen werden, nach Änderungen die Versionsnummer anzupassen.

Eine Extension für VisualStudio macht die Sache leichter:

  • In VisualStudio aus Tools -> Extensions and Updates aufrufen
  • Online nach 'Automatic Versions' suchen (Pecision Infinity, Version 1.5.1) und installieren
  • Nach einem Neustart von VisualStudio hat man im Menü Tools einen neuen Eintrag 'Automatic Versions Setting'

Für das ScanProgramm und die ExternalServices habe ich hier jetzt für alle Versionen eingestellt:

Die Major lasse ich unangetastet (Default: 1), Minor wird über die Jahreszahl (4stellig) gesetzt, der Build bekommt den aktuellen Monat und Revision lasse ich automatisch hoch zählen. Das Inkrement passiert dabei nur, wenn VisualStudio erkennt, daß die Binary neu erstellt werden soll (Rebuild Solution) oder muss (Build Solution nach Änderungen)

Für die genannten Projekte ist dies schon eingerichtet (nicht für die zugehörigen Libraries!) und da muss dann auch nichts weiter gemacht werden. Allerdings muss sich jeder, der in die Produktionsumgebung published, die Extension installieren, damit bei einer Produktivstellung auch sicher eine neue Versionsnummer vergeben wird.

Wenn das auch bei anderen Projekten eingeführt werden soll, schlage ich vor, die Einstellungen wie oben zu wählen. Theoretisch kann man für unterschiedliche Plattformen (x86, x64) und Konfigurationen (Entwicklung, Test, Produktion) auch unterschiedliche Einstellungen hinterlegen, da sehe ich aber bei uns keinen rechten Sinn.

Eventuell sollten wir uns überlegen das Ganze auch auf die Libraries auszuweiten, insbesondere, wenn wir vielleicht doch irgendwann selbige in NuGet verwalten wollen (http://webentw3/blog/post/2015/10/29/nuget-package-source-fur-mylife-bibliotheken)


Kommentar schreiben

Loading