Страницы

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

воскресенье, 9 февраля 2020 г.

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

#c_sharp #net


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


Ответы

Ответ 1



Атрибут [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, но интернет не подтверждает это.] Ещё по теме: Передавать в программу время компиляции.

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

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