.Net AssemblyName.version Сборка против ревизии - PullRequest
27 голосов
/ 19 июля 2010

Документация MSDN гласит:

Номера версий состоят из двух-четырех компонентов: основной, вспомогательный, сборочный и ревизионный.Требуются основные и второстепенные компоненты;Компоненты сборки и ревизии являются необязательными, но компонент сборки требуется, если компонент ревизии определен.Все определенные компоненты должны быть целыми числами, большими или равными 0.

Формат номера версии следующий (необязательные компоненты указаны в квадратных скобках ([и]): major.minor [.build [.revision]] Компоненты используются следующим образом:

  • Major: сборки с одинаковыми именами, но разными основными версиями, не являются взаимозаменяемыми. Более высокий номер версии может указывать на основную перезаписьпродукт, в котором нельзя предположить обратную совместимость.

  • Незначительный: если имя и номер основной версии на двух сборках совпадают, но вспомогательный номер версии отличается, это указывает на значительное улучшение сНамерение обратной совместимости. Этот более высокий вспомогательный номер версии может указывать на точечный выпуск продукта или полностью обратно совместимую новую версию продукта.

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

  • Редакция: сборки с одинаковыми именами, номерами старших и младших версий, но с разными ревизиями, должны быть полностью взаимозаменяемыми.Более высокий номер редакции может использоваться в сборке, которая устраняет дыру в безопасности ранее выпущенной сборки.

Последующие версии сборки, отличающиеся только номерами сборки или редакции, считаютсяОбновления исправлений предыдущей версии.

Мой вопрос касается значения терминов Build и Revision в этом контексте.

Мне кажется, что вВ общем, мы делаем «сборки», когда происходят изменения в источнике.Таким образом, «сборка 678» и «сборка 679» различаются , а точнее , поскольку источники в некотором роде различаются - обычно в результате проверки какого-либо измененного источника.Мне кажется, что определение .NET использует «Revision» так, как обычно используют «build».

Кто-нибудь использует приведенное выше определение в своих версиях?Если да, то можете ли вы привести конкретные примеры, ПОЧЕМУ вы это сделали?

Ответы [ 2 ]

22 голосов
/ 19 июля 2010

Последующие версии сборки, отличающиеся только номерами сборки или редакции, считаются обновлениями исправлений предыдущей версии.

Этот раздел объясняет разницу. Редакция используется, когда ваш продукт был отгружен, и вам необходимо внести исправления в поставленную версию, пока вы уже выполняете обновления.

Например, корабли 1.1.10.0. Я делаю небольшие изменения в функциональности и нахожусь на 1.1.20.0, когда я получаю предупреждение системы безопасности, которое нужно исправить. Я не могу увеличить 1.1.10.0 до 1.1.11.0, поскольку это представляет что-то еще. Поэтому я использую 1.1.10.1, чтобы определить, что это версия 1.1.10.0.

Надеюсь, это немного яснее, чем грязь. Также помните размер компании и размер программных проектов, которые они поставляют, которые придумали эти определения.

2 голосов
/ 19 июля 2010

Я полностью с вами согласен.Приведенные описания не имеют большого смысла, если вы не интерпретируете их щепоткой соли.Для меня последний из номеров версий должен означать build , то есть номер, который обновляется при каждой компиляции.Другие числа представляют различные степени изменения программного обеспечения / API.

На практике, как правило, так используются номера версий.(Конечно, как я их использую.)

  • Major - увеличивается, когда набор функций / API программного обеспечения значительно меняется

  • Незначительный - увеличен при внесении заметных изменений, незначительных изменений API или добавлении новой функциональности

  • Сборка - увеличен при незначительных измененияхкак правило, исправления ошибок и улучшения (но без изменений API)

  • Revision - уникальный идентификатор / номер, представляющий экземпляр сборки

...