Frage

Warum ist System.Version in .NET als major.minor.build.revision definiert? Fast jeder (ich eingeschlossen) scheint, dass Revision an dritter Stelle zu vereinbaren gehört, und „Build“ oder was auch immer Sie möchten, dass es zuletzt gehört nennen.

Does Microsoft auch die Zahlen in diesem planlos verwenden, z.B. 3.5.3858.2, oder sind die Namen sich nur nach hinten? Wenn Sie zum Beispiel waren Ihre eigene Version Klasse mit dem Auftrag major.minor.build.revision zu schreiben, wäre es richtig sein, die letzten beiden Komponenten zu tauschen, wenn du einen System.Version Umwandlung oder ignorieren Sie es und so tun, als nur die Namen sind zurück?

War es hilfreich?

Lösung

Ich denke, die Verwirrung kommt, was die meisten als „Revision“ betrachten und was Microsoft tut :

  • Körperbau: Ein Unterschied in der Build-Nummer steht für eine erneute Kompilierung von der gleichen Quelle. Dies würde wegen des Prozessors, Plattform oder Compiler Änderungen angemessen sein.

  • Version: Baugruppen mit dem gleichen Namen, Haupt- und Nebenversionsnummern, aber verschiedene Revisionen sollen vollständig austauschbar sind. Dies wäre sinnvoll, eine Sicherheitslücke in einem zuvor Montag freigegeben zu beheben.

Der Sicherheitsfix Winkel, wahrscheinlich viel häufiger für sie, so scheint ein anständiger Grund zu sein, um es auf den letzten Platz zu haben, als die „geringfügigen“ zu ändern.

Andere Tipps

Ich weiß, ich bin ein bisschen spät zur Party kommen, aber ich wollte meine zwei Pence auf teilen, warum die Reihenfolge der Build und Revision ist „falsch“. Es ist nicht so sehr, dass sie in der falsch Ordnung, aber dass sie nicht in jeder um.

Die Version einer Assembly, wenn es darauf ankommt, ist major.minor. Aus dem oben genannten Link , sagt Microsoft, „Nachfolgende Versionen einer Assembly, die unterscheiden sich nur durch Build oder Revisionsnummern werden als Hotfix-Updates aus dem Stand Version sein.“ [Hervorhebung von mir]

Die Erstellen stellt eine Neuübersetzung von der gleichen Quelle. Die Revision ist eine Codeänderung, sondern eine, die vollständig austauschbar mit anderen Revisionen dieselbe [major.minor] Version. Aber weder hat Vorrang vor den anderen.

So in der Zusammenfassung, denken Sie nicht davon, wie:

+ Major
|
+-+ Minor
  |
  +-+ Build
    |
    +-+ Revision

Doch statt:

+ Major
|
+-+ Minor
  |
  +-+ Build
  |
  +-+ Revision
  

Does Microsoft auch die Zahlen in diesem planlos verwenden, z.B. 3.5.3858.2

Wenn Sie es zulassen standardmäßig, z durch [assembly: AssemblyVersion("1.1.*")] spezifizieren, dann die dritte Zahl Schritte jeden Tag, und die vierte Zahl ist die Anzahl der Sekunden seit Mitternacht, die von zwei (eindeutig zu machen, wenn es mehr ist als ein an einem einzigen Tag Builds) unterteilt.

  

Fast jeder (ich eingeschlossen) scheint, dass Revision gehört an dritter Stelle zu vereinbaren, und „Build“ oder was auch immer Sie möchten, dass es nennen, gehört schließlich.

Microsoft scheinen „build“ als Synonym für „Tag“ werden: vielleicht, dass im Zusammenhang der auf die Idee der „täglichen Builds“; und eine „Revision“ ist dann also eine andere Version des (täglich) zu bauen.

Späte Antwort, aber ich fühle die anderen Antworten auf ein wenig erweitert werden könnte.

Die Begriffe "Build" und "Revision" ist nur Microsoft Terminologie. Die System.Version Klasse kümmert sich nicht in irgendeiner Art und Weise, wie Sie sie zuweisen.

Wie für die Reihenfolge der Teile Schalten Sie Ihre eigene Terminologie anzupassen ich würde sagen, dass man im Grunde die Worte völlig ignorieren sollte und stattdessen überlegen, was die System.Version wirklich definiert:

  • Ein String-Format, dass es analysieren kann und erzeugen:

    major.minor[.build[.revision]]
    

    Das bedeutet, dass, wenn Sie Sie eigene Version mit formatiert werden als x.y.z.w, dann sollten Sie die Version Klasse auf diese Weise instanziiert:

    new Version(x, y, z, w)
    

    Jeder andere Parameter, um nicht dem entsprechen, was Parse () und toString () würdest du. Wenn Sie wechseln z und w, dann ToString () ausgeben würde x.y.w.z die für jeden etwas verwirrend sein würde, wenn Sie x.y.z.w erwartet.

  • Versionsvergleich und sortieren um , wobei Versionen sortiert zuerst major, dann durch kleinere, dann bauen, dann Revision, wie die meisten von uns würden erwarten von. Das heißt, 1.2.5 ist später als 1.2.3.7.

    Also, wenn Sie eine neuere Version als String 1.2.6.4 Stil und möchten, dass sein als neuer als 1.2.5.8, dann kann die Reihenfolge der Teile, die nicht wechseln in die Version Konstruktor.

Kurz gesagt - während die Worte Dur / Moll / build / Revision könnte einen Hinweis auf welcher Nummer geben soll, die Menge an Änderungen unter Berücksichtigung erhöht wird, hat die Terminologie sehr wenig Einfluss darauf, wie die Klasse tatsächlich verwendet wird. Formatierung und Sortierung ist das, was zählt.

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