Как я могу получить номер сборки проекта Visual Studio для увеличения?

Почему сборка проекта в Visual Studio не увеличивает номер сборки?

Я получил это в AssemblyInfo.cs:

[assembly: AssemblyVersion("1.5.*")]

... и это в конструкторе frmAbout:

Version versionInfo = Assembly.GetExecutingAssembly().GetName().Version;
String versionStr = String.Format("{0}.{1}.{2}.{3}", versionInfo.Major.ToString(), versionInfo.Minor.ToString(), versionInfo.Build.ToString(), versionInfo.Revision.ToString());
lblVersion.Text = String.Format("Version {0}", versionStr);

Тем не менее, после внесения изменений в код и построения проекта (щелкните правой кнопкой мыши имя проекта> Build), часть Build из versionInfo не увеличивается. Ярлык в "О коробке" идет от:

Version 1.5.5465.25383

... чтобы:

Version 1.5.5465.25999

Почему номер сборки не увеличился с 5465 до 5466? И почему "Ревизия" прыгает на 616 ступеней? Это последнее случайное значение, или число байтов, которые изменились в источнике, или как?

Итак, как я могу получить номер сборки, чтобы фактически увеличить?

ОБНОВИТЬ

Да, Разкор прав, поскольку это показывает "5465" (сегодня, YMWV любой день после этого):

DateTime startDate = new DateTime(2000, 1, 1);
DateTime todaysDate = DateTime.Today;
int diffDays = (todaysDate.Date - startDate.Date).Days;
MessageBox.Show(diffDays.ToString());

И, зная номер сборки (например, 5465), можно вычислить и отобразить дату сборки:

DateTime computedDate = startDate.AddDays(diffDays);
MessageBox.Show(computedDate.ToLongDateString()); // shows today's date (such as what it is today, namely: "Thursday, December 18, 2014")

1 ответ

Решение

Когда вы заменяете '0' на '*', номер сборки и номер ревизии автоматически увеличиваются, но не так, как вы (и я) могли бы подумать. Правила этого автоинкремента таковы: номер сборки - это количество дней с 1.1.2000, а количество ревизий - количество секунд с полуночи, деленное на 2.

Другие вопросы по тегам