| 

.NET C# Java Javascript Exception

8
Guten Abend zusammen,

ich hätte da mal eine generelle Frage was Ihr als "best practice" für Versionsnummern bei Anwendungen, die aus etlichen Assemblies bestehen, anseht.

Bisher (VB6) hatte ich das so gehalten, das ich z.B. bei einem Update/Bugfix einer Anwendung die z.B. aus 8 DLLs besteht, sämtliche DLLs hochgesetzt habe. Alle auf eine identische Versionnummer. Auch, wenn sich nur eine einzige geändert hat.
Grund dafür ist eigentlich nur ein subjektiv besseres Gefühl. Wenn ich den Kunden frage, welche Version er installiert hat, sie bei ihm Probleme bereitet bei mir aber nicht, und ich dann einzelne Versionsunterschiede in den DLLs festelle, liegt für mich auf der Hand, das beim Setup etwas nicht sauber funktioniert hat.

Nun (.NET C#/VB) haben wir aber den Fall, das wir mittlerweile mit mehreren Leuten an einer Anwendung arbeiten. Ich halte es deshalb für sehr umständlich, wenn mehrere Leute ihre Assemblies (grundlos) neu kompilieren müssen, nur weil ich an einer von "meinen" etwas verändere.

Auf der anderen Seite schreibt das MSI-Setup z.B. die Versionsnummer der installieren Anwendung vielleicht in die Registry oder an einen anderen Ort, aber die DLLs passen dann "optisch" nicht dazu. Wie gewährleistet Ihr hier einen schnellen Überblick ohne durcheinander zu kommen?

Ich muss sagen, das ich mich bisher an keinen Fall erinnern kann, wo ich das wirklich gebraucht hätte, das alle DLLs dieselbe Version tragen. Vom Bauchgefühl fühlt sich das aber trotzdem runder an.

Bitte um Diskussion.
News:
08.05.2012
Jens Duczmal 2,6k 3 9
Ich habe mir immer einen abgebrochen und die Version in allen Projekten manuell angepasst. Coole Lösung, auf die Idee wäre ich gar nie gekommen, dass man das anders lösen könnte.
Tosch 09.05.2012
Versuch es doch mit einem Buildskript. Habe die Versionsnummer per selbsterstellten NAnt Task auf die gleich Versionsnummer gesetzt und letztlich ein Build erstellt. Das ganze in einen CI-Server verpackt und somit global über den Browser konnte jeder ein Build starten.
hazzel 15.05.2012
4 Antworten
8
Also wenn die Assemblies nicht separat "deployed" werden (wie schreibt man das auf Deutsch?), also nur als Bestandteil der Hauptanwendung in Umlauf kommen, gibt es für mich keinen Grund für separate Versionen (UI ist schon Version 5.0, die BL aber noch 1.3? was soll das?).
Wenn alle Assemblies die selbe Version haben sollen, erstell doch eine Version.cs, die du in allen 8 Projekten verknüpft. Da sparst du dir die Arbeit sparen, das 8x zu ändern.
08.05.2012
kleffel 624 8
Ach, das geht? Also wenn Du dafür irgendeinen Link hättest, würde ich mich freuen. Aber ich google natürlich auch gleich mal nach Version.cs
Jens Duczmal 08.05.2012
Und ja, die werden nicht separat verteilt. Eine Anwendung als MEF-Modul, bestehend aus x Assemblies. Da gehört dann halt alles zusammen.
Jens Duczmal 08.05.2012
http://jebsoft.blogspot.de/2006/04/consistent-version-numbers-across-all.html sollte es sein.
Jens Duczmal 08.05.2012
3
+1 Der Vorschlag gefällt mir auch. So ein Link ist nicht schwer zu googlen ("version link assembly share"): http://blogs.msdn.com/b/jjameson/archive/2009/04/03/shared-assembly-info-in-visual-studio-projects.aspx
Matthias Hlawatsch 09.05.2012
Nicht nur die Version sondern auch andere Felder lassen sich verknüpfen: AssemblyCompany, AssemblyTrademark usw. Wir verwenden seit Jahren eine Assembly-Spezifische AssemblyInfo.cs und eine (gelinkte) AssemblyProductInfo.cs. Das hat sich außerordentlich gut bewährt.
puls200 11.05.2012
@deployed = Einsatz.
to deploy = einsetzen
Karl 02.09.2012
2
Wir benutzen die "Versioning Controlled Build GUI" für solch ein "Gradeziehen" der Versionsnummern: http://www.codeproject.com/Articles/5851/Versioning-Controlled-Build
11.05.2012
MyKey0815 1,6k 2 9
Interessant.Lese ich am nächten Regentag mal durch. Dürfte hier nicht lange dauern :)
Jens Duczmal 11.05.2012
2
Bin gerade über einen Artikel gestolpert, der in diesem Zusammenhang auch den ein oder anderen interessieren könnte: SVN Revision in den Quellcode einbinden–Teil 1
Er beschreibt, wie man die SVN-Versionsnummer in die Assembly-File-Version aufnehmen kann und somit "sicherstellen, dass ein Produkt zum Quellcode zurückverfolgt werden kann."
22.05.2012
Floyd 14,5k 3 9
Floyd 14,5k 3 9
0
Wie sieht es mit einem Build-Tool wie NAnt aus?
Damit könntest auch in allen Assemblies die Versionsnummern gleich setzen.
In Verbindung mit einem CI-Tool ist das gerade bei größeren Projekten nicht schlecht.
31.08.2012

Stelle deine .net-Frage jetzt!