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

147
27 января 2018, 23:59

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

Answer 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, но интернет не подтверждает это.]

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

READ ALSO
CefSharp/CefSharp.Offscreen/ChromiumWebBrowser ошибка: System.Exception: “Cef can only be initialized once..”

CefSharp/CefSharp.Offscreen/ChromiumWebBrowser ошибка: System.Exception: “Cef can only be initialized once..”

Хотел параллельно создать и поместить в коллекцию несколько браузеров CefSharp/CefSharpOffscreen/ChromiumWebBrowser:

277
Условный оператор

Условный оператор

Привет, не пойму, где прописать оператор присвоения, в условииПолучается у меня такое условие, но если переменная больше нуля надо при помощи...

219
insert в mongodb

insert в mongodb

Есть ли возможность при вставке документа с помощью insertOne в MongoDB каким-то образом вместо имени поля использовать переменную в JavaScript? В частности,...

188
Не работает выпадающий список плагина Chosen при динамическом добавлении выпадающего списка

Не работает выпадающий список плагина Chosen при динамическом добавлении выпадающего списка

Если выпадающий список изначально задан на странице все прекрасно работает, а если он добавляется на страницу позднее, тогда плагин не срабатываетЯ...

253