Я пролистал некоторые дискуссии по автоинкрементным числам сборки, но в нетерпении молодежи решил прокатиться самостоятельно и заново изобрести колесо. Я знаю, что, возможно, есть более эффективные способы решения этой проблемы (которые я определенно собираюсь исследовать), но мой вопрос больше сосредоточен на классах Assembly и / или Version.
Мой подход заключался в написании отдельного exe-файла (BuildIncrementer), который принимает параметр командной строки для имени файла, сопоставляет ли регулярное выражение содержимое, чтобы получить строку [assembly: AssemblyVersion...]
, вносить необходимые изменения (увеличивать номер сборки) и т. д.), затем запишите содержимое обратно в файл. Этот подход работает как есть.
Следующее, что я сделал в проекте, для которого я хотел использовать это, я настроил командную строку перед сборкой, которая является просто командой для выполнения этого BuildIncrementer.exe в файле AssemblyInfo.cs этого проекта. Это тоже работает, обновляя информацию о сборке по желанию.
Проблема возникает, когда я запускаю проект, он отправляет электронное письмо с текущей версией, полученной с помощью Assembly.GetExecutingAssembly().GetName().Version.ToString()
. НО, отображаемая версия является предыдущей версией. Когда мой AssemblyInfo.cs сообщает [assembly: AssemblyVersion("1.0.2.49667")]
, я получаю 1.0.1.45660, который был предыдущей сборкой.
У кого-нибудь есть идеи, почему это может быть?