Frage

Ich freue mich auf einen täglichen Build für ein geplantes Projekt zu implementieren.

Aber bevor Sie das tun, ich muss wissen, wie man richtig Version eine Baugruppe.

Ich habe folgendes Anliegen:

  • Wenn jede Baugruppe eine unabhängige Versionsnummer haben oder sollten sie die gleiche Version alle teilen?
  • Sollte ich eine * Version für Build verwenden und Revision?
  • Ist Revision relevant tägliche Build?
War es hilfreich?

Lösung

Wir stempeln alle Baugruppen innerhalb unserer Produkte mit der gleichen Versionsnummer mit den folgenden Schritten:

  • Link alle Baugruppen auf eine AssemblyInfoCommon.cs die enthält Versionsnummer Info: finden Sie unter hier für ein Beispiel.

  • Generieren Sie die AssemblyInfoCommon.cs Datei als Teil des Build mit (in unserem Fall) Nant asminfo Aufgabe, Cruise Control .NET und die SVN Revision Etikettierer

In unserem Fall haben wir nicht die * Version verwenden. Alle eingesetzten Versionen sind auf dem Build-Server aufgebaut. Wir sorgen nicht um die Versionsnummer auf unseren Desktops.

Andere Tipps

Die Antwort hängt davon ab, was Sie versuchen, mit den Montageversionsnummern zu erreichen. Wenn Sie eine Clickonce-Bereitstellung tun und wollen unabhängig Downloads aktualisierter Baugruppen zu tun, müssen Sie jede Baugruppe unabhängig versioniert haben - anders, ich denke, es oft schön, Montage Versionen der Software-Versionsnummer übereinstimmen zu lassen. In komplexeren Szenarien können Sie eine andere Strategie benötigen.

Ein Schema I zu einem früheren Unternehmen verwenden major.minor.revision.build wurde - so in der Version 1.0 des Produkts war die Assemblierung-Version und Montagedateiversion auf jeder Baugruppe 1.0.0.1129 (zum Beispiel). Dies machte es leicht, bis entsprechen, was Baugruppen Teil der Software-Version, bis auf die Build-Nummer war. Wir erreichen dies eine Vorkompilierung Suche und Ersetzen in jeder Datei AssemblyInfo.cs ein Token mit den Versionsnummern von unserem automatisierten Build-Prozess zur Verfügung gestellt zu ersetzen.

So Jede Baugruppe soll die gleiche Version hat die in der Regel eine Kombination aus der Release-Version ist also 3,4 + die Build-Nummer, die eine Folge ist, dass die Anzahl der Male, dass die Freisetzung repräsentiert hat auf dem Build-Server erstellt. Die Revision ist relevant, weil sie die Zahl zeigt, die Builds, dass Sie für diese Version erstellt haben. Sie können dies wirklich in einer von zwei Arten tun. Die erste Möglichkeit wäre, dass wenn Sie einen Release dh 3.4 dann geplant, wenn Sie auf dieser Version zu arbeiten beginnen, dann ist das Ihre Hauptversionsnummer und Ihre Nebenversionsnummer Schritte mit dem Build. Ein anderer Weg, dies zu tun, ist eng an die Versionen, dass Build zu steuern, wenn Sie bereit sind, Ihre Freilassung zu QA / Regression auszuführen Sie setzen Ihre Hauptversion 3.4 und verlassen Sie Ihre kleinere Versionsnummer 0. Sie halten Dinge fest auf diese Weise gesteuert bis Sie loslassen. Auf diese Weise können Sie Ihren Service Pack Nummerierung durch die Nebenversionsnummer steuern. Hoffe, das hilft.

Normalerweise würde ich zustimmen, dass alle Baugruppen die gleiche Versionsnummer haben sollten; jedoch würde ich einen Vorbehalt zu, dass machen. Wenn einer der Baugruppen außerhalb dieses Projekts woanders verwendet wird, oder wenn es sein eigenes Projekt in Betracht gezogen wird, sollte es über eine eigene Versionsnummer. Es soll wohl auch aus dieser Lösung und in seinem eigenen bewegt werden. Der einzige Grund, warum ich dies erwähnen ist, dass ich mehrfach gesehen habe, wo die Menschen haben eine Versammlung, die in ein paar anderen Orten verwendet wird, vor allem aber an einem Ort, und sie versuchen, die Version gerade zu halten. Es ist eine schlechte Idee, das zu tun. Ich denke, das Einzel Prinzip Verantwortung bei der Lösung / Projektebene gilt als gut.

Was die Nummerierung geht, ich bin einverstanden mit Guy Starbuck (major.minor.revision.build). Das ist die Art, wie ich es immer getan habe und es hat immer gut funktioniert.

Wir haben eine große app (Hunderte von Baugruppen) mit häufigen Releases (ca. 1 Monat). Wir gingen für die „gibt jeder Versammlung die gleiche Version“ aber es ist eine ständige Quelle von fustration mir, dass Baugruppen für 1 Version mit denen völlig unvereinbar ist, von einem anderen, trotz der Tatsache, dass die Schnittstellen dieser assmblies selten (wenn überhaupt) zu ändern.

Ist dies Fall für Sie dann von Ihnen profitieren könnten Baugruppen separat Versionierung - jedes Mal, wenn Sie Ihre Montage nur aktualisieren plagen die Versionsnummer in den Fällen zu erhöhen, wo man tatsächlich Montage Bindung brechen wollen (zum Beispiel, wenn die Schnittstelle ändert oder die Änderungen sind sonst erhebliche enoigh, die Sie möchten, dass jemand aus Versehen verhindern, dass die vorherige Version verwenden).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top