Подтвердить что ты не робот

Какова формула в .NET для номеров версий "*" (подстановочные)?

Скажем, у меня есть номер версии 1.5. *, который скомпилирован как 1.5.4735.28467.

Какова формула для получения 4735 и 28467?

4b9b3361

Ответ 1

Обратите внимание: существуют альтернативные инструменты/правила/схемы/макросы/надстройки/etc для управления версиями по-другому; если они используются, они, очевидно, стирают следующее.

Однако, как версия "*" вычисляется до .build.revision в процессе сборки Visual Studio/.NET в ваниле:

При указании версии вы должны, по крайней мере, указать major. Если вы укажете основные и второстепенные значения, вы можете указать звездочку (*) для сборки. Это приведет к тому, что построение будет равно количеству дней с 1 января 2000 года по местному времени, а для версии будет равно количеству секунд с полуночного локального времени, разделенному на 2.

Смотрите Ужас кодирования: определение даты сборки трудным способом и MSDN: AssemblyVersionAttribute. Это поведение расширения по умолчанию задокументировано в классе AssemblyVersionAttribute (BCL!) , а не в специальном поведении компилятора VS (см. Комментарий Daniel), а не только в отношении поведения компилятора.


Вот одна реализация формулы (извлеченная из комментария Daniel):

int Build = DateTime.Today.Subtract(new DateTime(2000, 1, 1)).Days;
int Revision = (int)DateTime.Now.Subtract(DateTime.Today).TotalSeconds / 2;