Какова формула в.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; 
Другие вопросы по тегам