#visual-studio #visual-studio-2010 #version-control #build
#visual-студия #visual-studio-2010 #контроль версий #сборка
Вопрос:
Следуя рекомендациям, приведенным в системных комментариях к файлу AssemblyInfo.cs:
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
Я установил (только для тестирования):
[assembly: AssemblyVersion("2.1.*")]
После сборки я получаю номер версии: 2.1.4321.42563
Затем, после внесения небольших изменений в файл AssemblyInfo.cs и повторной сборки, я получаю следующую версию: 2.1.4321.42710
Мне интересно, что означают все эти числа (4321.42563; 4321.42710)? Каков шаблон, следуя которому система их генерирует?
Ответ №1:
4321 = количество дней с 1 января 2000
года 42563 = количество секунд с полуночи / 2
Что делает это 31.10.2011 11:38:46 вечера. Это местное время без настройки перехода на летнее время.
Комментарии:
1. Примечание: это верно только в том случае, если вы используете сборку и ревизию с подстановочными знаками, т.е. [assembly:AssemblyVersion(«1.2.*»)], если вы укажете сборку вручную и только ревизию с подстановочными знаками, т.е. [assembly:AssemblyVersion(«1.2.15.*»)], вы получите случайную ревизию
2. Хм, это ошибка. Нет никакой гарантии, что вы получите отдельный номер версии. Особенно сложно на сервере сборки, который может запускать сборку через заданные промежутки времени. Никогда не делайте этого.
Ответ №2:
Номер сборки указывает на день, когда он был собран, номер редакции является случайным по документации, но на самом деле, прямо сейчас, как указывает Ганс.
Вы можете указать все значения или принять номер сборки по умолчанию, номер редакции или оба, используя звездочку () . Например, [assembly:AssemblyVersion(«2.3.25.1»)] указывает 2 как основную версию, 3 как младшую версию, 25 как номер сборки и 1 как номер редакции. Номер версии, такой как [assembly:AssemblyVersion(«1.2.«)], указывает 1 как основную версию, 2 как младшую версию и принимает номера сборки и ревизии по умолчанию. Номер версии, такой как [assembly:AssemblyVersion(«1.2.15.*»)], указывает 1 как основную версию, 2 как младшую версию, 15 как номер сборки и принимает номер редакции по умолчанию. Номер сборки по умолчанию увеличивается ежедневно. Номер редакции по умолчанию является случайным.
Источник: MSDN
Комментарии:
1. На самом деле, я сделал замечание, что [assembly:AssemblyVersion(«1.2.15.*»)] приведет к случайному номеру редакции, в то время как [assembly:AssemblyVersion(«1.2. *»)] приведет к детерминированному шаблону, который описал Ганс (сборка = дни с 2000 года, обороты = две секундыс полуночи)