Страницы

Поиск по вопросам

среда, 17 апреля 2019 г.

Генерирование версии программы

Можно ли сделать так, что бы в Caption формы при каждой компиляции программы выполнялся автоматический инкремент версии?


Ответ

Атрибут [assembly: AssemblyVersion(...)] может использоваться для автоматической нумерации, если вы укажете его в формате
[assembly: AssemblyVersion("1.0.*")]
или
[assembly: AssemblyVersion("1.0.0.*")]
При этом обозначенные звёздочками части версии будут подсчитаны автоматически. Например, третья часть версии (build) будет подсчитана как количество полных дней с 1.1.2000, то есть, по формуле
(DateTime.Now - new DateTime(2000, 1, 1)).Days
Это даст увеличение build number каждый день.
Четвёртая часть (revision) будет подсчитана как половина количества секунд от начала текущих суток, не беря в расчёт летнее время. Это даст увеличение номера revision каждые две секунды.
Документация: AssemblyVersionAttribute @ docs.microsoft.com

Для того, чтобы получить номер версии, можно использовать
Assembly.GetExecutingAssembly().GetName().Version
(ну и ToString(), если нужно для вывода).

Компоненты Windows, судя по всему, используют похожую схему версионирования, но немного другую. Например, мой экземпляр cmd.exe имеет версию 10.0.16299.15. [Это отдалённо похоже на отсчёт с Unix epoch, но интернет не подтверждает это.]

Ещё по теме: Передавать в программу время компиляции

Комментариев нет:

Отправить комментарий