Какова формула в.NET для номеров версий "*" (подстановочный знак)?
Скажем, у меня есть номер версии 1.5.*, Который скомпилирован как 1.5.4735.28467.
Какая формула для получения 4735 и 28467?
1 ответ
Обратите внимание: существуют альтернативные инструменты / правила / схемы / макросы / надстройки / и т. Д. Для управления версиями другим способом; при использовании они, очевидно, стирают следующее.
Тем не менее, это как "*"
версия рассчитана на .build.revision
в процессе сборки Visual Studio / .NET:
При указании версии вы должны как минимум указать основной. Если вы задаете мажор и минор, вы можете указать звездочку (*) для сборки. Это приведет к тому, что сборка будет равна количеству дней с 1 января 2000 года по местному времени, а пересмотр будет равен количеству секунд с полуночи по местному времени, деленному на 2.
См. Ужас кодирования: определение даты сборки трудным путем и MSDN: AssemblyVersionAttribute. Это поведение расширения по умолчанию задокументировано в классе AssemblyVersionAttribute (BCL!) а не специальное поведение компилятора VS (см. комментарий Дэниела), а не только поведение компилятора.
Вот одна реализация формулы (как извлечено из комментария Даниэля):
int Build = DateTime.Today.Subtract(new DateTime(2000, 1, 1)).Days;
int Revision = (int)DateTime.Now.Subtract(DateTime.Today).TotalSeconds / 2;