如果将AssemblyInfo类添加到项目中,然后将该
AssemblyVersion属性修改为以星号结尾,例如:
[assembly: AssemblyVersion("2.10.*")]Visual Studio将根据这些规则为您增加最终编号(感谢galets,我完全错了!)
要在代码中引用此版本,以便使用可以将其显示给用户
reflection。例如,
Version version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;DateTime buildDate = new DateTime(2000, 1, 1) .AddDays(version.Build).AddSeconds(version.Revision * 2);string displayableVersion = $"{version} ({buildDate})";您应该知道的三个重要陷阱
来自@ ashes999:
还值得注意的是,如果同时指定
AssemblyVersion和
AssemblyFileVersion,则不会在.exe中看到此内容。
来自@ BrainSlugs83:
仅将第4个数字设置为数字可能
*会很糟糕,因为版本不会总是递增。 第三届数字是自2000年以来的天数 ,和
第4号是自午夜(除以2)的秒数[IT不是随机的]
。因此,如果您在一天的一天中的一天之内以及第二天的一天中的一天之内构建了该解决方案,则较晚的构建将具有较早的版本号。我建议始终使用
X.Y.*而不是,
X.Y.Z.*因为您的版本号将始终以这种方式增加。
较新版本的Visual Studio会出现此错误:
(该主题于2009年开始)
指定的版本字符串包含通配符,该通配符与确定性不兼容。从版本字符串中删除通配符,或禁用此编译的确定性。
请参阅此SO答案,其中解释了如何删除确定性(https://stackoverflow.com/a/58101474/1555612)


![如何具有自动递增的版本号(Visual Studio)?[重复] 如何具有自动递增的版本号(Visual Studio)?[重复]](http://www.mshxw.com/aiimages/31/391678.png)
