Почему System.Version в .NET определяется как Major.minor.build.ruision?

StackOverflow https://stackoverflow.com/questions/3098167

  •  29-09-2019
  •  | 
  •  

Вопрос

Почему System.Version в .NET определяется как Major.minor.build.ruision? Почти все (включая меня), кажется, согласны с тем, что ревизия принадлежит на третьем месте, и «строить» или то, что вы хотели бы назвать, принадлежит последнему.

Microsoft даже использует цифры этим случайным образом, например, 3.5.3858.2, или сами имена - это только назад? Например, если бы вы писали свой собственный класс версий с помощью Order Major.minor.build.Revision, было бы уместно поменять два последних компонента при преобразовании в систему. Версия, или вы игнорируете его и просто притворяетесь именами отсталые?

Это было полезно?

Решение

Я думаю, что путаница приходит то, что больше всего считает «ревизию» и Что делает Microsoft:

  • Строить: Разница в номере сборки представляет собой перекомпиляцию того же источника. Это было бы уместно из -за изменений процессора, платформы или компилятора.

  • Пересмотр: Собрание с тем же именем, основными и незначительными номерами версий, но различные изменения предназначены для того, чтобы быть полностью взаимозаменяемыми. Это было бы целесообразно исправить дыру в безопасности в ранее выпущенной сборке.

Угол исправления безопасности, вероятно, гораздо более распространенный для них, кажется приличной причиной, чтобы иметь его на последнем месте, как «самый минорный» изменение.

Другие советы

Я понимаю, что я приезжаю на вечеринку немного поздно, но я хотел поделиться своим поминовением, почему порядок сборки и ревизии «неправильно». Это не так много, что они в неправильный заказ, но они не в Любые порядок.

Версия сборки, когда она доходит до него, является мажорным. Минор. От вышеупомянутого связь, Microsoft говорит: «Последующие версии сборки, которые отличаются только номерами сборки или ревизии, считаются обновлениями исправления предыдущих версия. [Мой акцент

То Строить представляет перекомпиляцию того же источника. То Редакция представляет собой изменение кода, но одно, которое полностью взаимозаменяемо с другими пересмотрами одной и той же версии [major.minor]. Но ни один из них не имеет приоритета над другим.

Итак, в резюме, не думай об этом как:

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

Но вместо:

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

Может ли Microsoft даже использовать номера в этой случайной опасности, например, 3.5.3858.2

Если вы позволите ему по умолчанию, например, указав [assembly: AssemblyVersion("1.1.*")], затем третье число увеличивается каждый день, а четвертое число - это количество секунд с полуночи, разделенное на два (чтобы удвоить, если за один день строится более одного строительства).

Почти все (включая меня), кажется, согласны с тем, что ревизия принадлежит на третьем месте, и «строить» или то, что вы хотели бы назвать, принадлежит последнему.

Microsoft, кажется, использует «сборку» в качестве синонима «дня»: возможно, это связано с идеей «ежедневных сборки»; и, следовательно, «пересмотр» является еще одной версией (ежедневной) сборки.

Поздний ответ, но я чувствую, что другие ответы могут быть немного расширены.

Термины «сборка» и «пересмотр» - это просто терминология Microsoft. Класс System.version каким -либо образом не заботится о том, как вы их назначаете.

Что касается переключения порядка деталей в соответствии с вашей собственной терминологией, я бы сказал, что вы должны в основном игнорировать слова полностью, и вместо этого рассмотреть, что такое система. В самом деле Определяет:

  • Формат строки, который он может проанализировать и генерировать:

    major.minor[.build[.revision]]
    

    Это означает, что если вы привыкли иметь свою собственную версию, отформатированную как xyzw, то вам следует создавать класс версий таким образом:

    new Version(x, y, z, w)
    

    Любой другой заказ параметра не будет соответствовать тому, в каком разборе () и TOSTRING () будет делать. Если вы переключите Z и W, то TOSTRING () выводится XYWZ, который будет запутаться для всех, если вы ожидаете XYZW

  • А. Сравнение версий и порядок сортировки, в результате чего версии сортируются сначала по Major, затем Minor, затем постройте, затем пересмотр, как и ожидали большинство из нас. То есть 1.2.5 позже 1.2.3.7.

    Поэтому, если вы создаете строку своей версии как 1.2.6.4 и хотите, чтобы она считалась новой, чем 1.2.5.8, не переключайте порядок деталей в конструкторе версии.

Короче говоря, в то время как слова Major/Minor/Build/Revision могут дать подсказку относительно того, какое число должно быть увеличено, учитывая количество изменений, терминология оказывает очень мало влияния на то, как на самом деле используется класс. Форматирование и сортировка - это то, что имеет значение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top