35 Stimmen

.Net AssemblyName.version Build versus Revision

In der MSDN-Dokumentation heißt es:

Versionsnummern bestehen aus zwei bis vier Komponenten: Major, Minor, Build und Revision. Die Major- und Minor Komponenten sind erforderlich; die Komponenten Build und Revision sind optional, aber die Build-Komponente ist erforderlich, wenn die Revisionskomponente definiert ist. Alle definierten Komponenten müssen ganze Zahlen sein größer als oder gleich 0 sein.

Das Format der Versionsnummer ist wie folgt (optionale Komponenten werden in eckigen Klammern ([ und ]): major.minor[.build[.revision]] Die Komponenten werden nach Konvention wie folgt verwendet wie folgt verwendet:

  • Hauptfach: Baugruppen mit dem gleichen Namen aber unterschiedlichen Hauptversionen sind nicht austauschbar. Eine höhere Versions Nummer kann auf eine größere Überarbeitung eines Produkts hinweisen, bei dem Abwärts Kompatibilität nicht vorausgesetzt werden kann.

  • Minderjährig: Wenn der Name und die Haupt Versionsnummer bei zwei Baugruppen gleich gleich sind, aber die Minor-Versionsnummer unterschiedlich ist, deutet dies auf signifikante Verbesserung mit der Absicht der Abwärtskompatibilität. Diese höhere Nebenversionsnummer könnte auf eine Zwischenversion eines Produkts hinweisen oder eine vollständig abwärtskompatible neue Version eines Produkts.

  • Bauen: Ein Unterschied in der Build-Nummer steht für eine Neukompilierung desselben Quelle. Unterschiedliche Build-Nummern können verwendet werden, wenn sich der Prozessor, die Plattform oder der Compiler ändert.

  • Revision: Assemblies mit dem gleichen Namen, Haupt- und Nebenversionsnummern aber unterschiedlichen Revisionen sind vorgesehen vollständig austauschbar sein. Eine höhere Revisionsnummer könnte in einem Build verwendet werden, der eine Sicherheitslücke in einem einer zuvor freigegebenen Baugruppe behebt.

Nachfolgende Versionen einer Baugruppe die sich nur durch Build- oder Revisionsnummern Nummern unterscheiden, werden als Hotfix Updates der vorherigen Version.

Meine Frage bezieht sich auf die Bedeutung der Begriffe Build und Revision in diesem Zusammenhang.

Es scheint mir, dass wir im allgemeinen Sprachgebrauch "Builds" machen, wenn es Änderungen im Quellcode gibt. Somit sind "build 678" und "build 679" unterschiedlich genau weil sich die Quellen in irgendeiner Weise unterscheiden - typischerweise als Ergebnis eines Checkin einer geänderten Quelle. Es scheint mir, dass die .NET-Definition "Revision" so verwendet, wie man im Allgemeinen "Build" verwendet.

Verwendet jemand die obige Definition in seiner Versionierung? Wenn ja, können Sie konkrete Beispiele nennen, WARUM Sie das getan haben?

28voto

btlog Punkte 4650

Nachfolgende Versionen einer Assembly, die sich nur durch Build- oder Revisionsnummern unterscheiden, werden als Hotfix-Updates der vorherigen Version betrachtet.

In diesem Abschnitt wird der Unterschied erklärt. Die Revision wird verwendet, wenn Ihr Produkt ausgeliefert wurde und Sie Korrekturen an einer ausgelieferten Version vornehmen müssen, während Sie bereits mit Aktualisierungen fortfahren.

Zum Beispiel wird 1.1.10.0 ausgeliefert. Ich nehme kleine Änderungen an der Funktionalität vor und bin bei 1.1.20.0, als ich eine Sicherheitsmeldung erhalte, die behoben werden muss. Ich kann nicht von 1.1.10.0 auf 1.1.11.0 erhöhen, da dies etwas anderes bedeutet. Ich verwende also 1.1.10.1, um zu erkennen, dass es sich um eine Revision des Codes 1.1.10.0 handelt.

Ich hoffe, das ist ein bisschen klarer als der Schlamm. Denken Sie auch an die Größe des Unternehmens und die Größe der Softwareprojekte, für die sie diese Definitionen entwickelt haben.

5voto

Noldorin Punkte 138548

Ich stimme Ihnen hier vollkommen zu. Die angegebenen Beschreibungen machen nicht viel Sinn, wenn man sie nicht mit einer Prise Salz interpretiert. Für mich sollte die letzte der Versionsnummern bedeuten bauen , d. h. die Zahl, die bei jeder Kompilierung aktualisiert wird. Die anderen Zahlen stehen für unterschiedliche Grade von Änderungen an der Software/API.

In der Praxis werden die Versionsnummern in der Regel so verwendet. (Sicherlich, wie ich sie verwende.)

  • Major - erhöht, wenn sich der Funktionsumfang/die API der Software erheblich ändert

  • Kleinere - erhöht, wenn bemerkenswerte Änderungen vorgenommen werden, kleinere API-Änderungen oder das Hinzufügen neuer Funktionen

  • Bauen Sie - erhöht, wenn kleinere Änderungen vorgenommen werden, in der Regel Fehlerbehebungen und Verbesserungen (jedoch keine API-Änderungen)

  • Revision - eine eindeutige ID/Nummer, die die Build-Instanz darstellt

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X