build-process - 如何让 Visual Studio 项目的内部版本号递增?

标签 build-process versioning revision assemblyversions assemblyversionattribute

为什么在 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);

然而,在对代码进行更改并构建项目后(右键单击项目名称 > 构建),versionInfo 的构建部分不会增加。 “关于”框中的标签来自:
Version 1.5.5465.25383

...到:
Version 1.5.5465.25999

为什么内部版本号没有从 5465 增加到 5466?为什么“修订版”跳了 616 个档次?后者只是一个随机值,还是源中已更改的字节数,还是什么?

那么我怎样才能让内部版本号实际增加呢?

更新

是的,razcor 是对的,因为这显示“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")

最佳答案

当您用 '*' 版本号替换 '0' 时,版本号将自动递增,但不会像您(和我)想象的那样。此自动增量的规则是:内部版本号是自 1.1.2000 以来的天数,修订版是自午夜以来的秒数除以 2。

关于build-process - 如何让 Visual Studio 项目的内部版本号递增?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27557023/

相关文章:

安卓 eclipse : Customizing the build process

visual-studio-2010 - 在 VS2010 上构建解决方案时如何找到 "slow"位置?

ruby-on-rails - rails 4 x paper_trail : track which attributes are updated and display their new value

php - 如何比较字符串中的版本号?

vb.net - 类版本控制

c# - 通过转换 (ChildClass)parentObject 调用子构造函数;跟踪修订

git - 一般如何使用修订控制系统

visual-studio - 何时以及如何将 ILMerge 与 Visual Studio 项目/解决方案一起使用

java - 从 Eclipse 打包和部署 Jython 程序

mysql - 用户向 mysql 提交内容并进行审核 : separate table?