【发布时间】:2010-08-11 11:03:13
【问题描述】:
如何设置 visual studio 2010 以在每次构建时设置为项目的自动增量版本?
vs2010 上是否存在此功能?
【问题讨论】:
如何设置 visual studio 2010 以在每次构建时设置为项目的自动增量版本?
vs2010 上是否存在此功能?
【问题讨论】:
更改 AssemblyInfo.cs 文件:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
到
[assembly: AssemblyVersion("1.0.*")]
//[assembly: AssemblyFileVersion("1.0.0.0")]
【讨论】:
正如其他人提到的,1.0.* 总是替换为 1.0.{date}.{time] 所以它应该总是递增(你会想到)
在 VS2010 中,将 AssemblyVersion 更改为 [assembly: AssemblyVersion("1.0.*")] 有效,请注意您必须关闭解决方案/项目,重新打开它 然后重新构建它(不构建)以刷新/更改构建+修订值。
日期/时间似乎是从项目打开时获得的,因此关闭/重新打开以刷新修订/构建值,我想如果您一次性更改项目中的各个位,这很有用并且它不会继续更改 AssemblyVersion 可能会破坏其他位。
To return the date from the build value:
DateAdd(DateInterval.Day, build, DateValue("01/01/2000"))
' build is the number of days from 1/1/2000
To return the time from the revision value:
Date.FromOADate(revision / 1800 / 24)
' depending on your timezone you may have DST/BST issue with resulting time
【讨论】:
AssemblyInfo.cs - 如果您使用 c/c++ 开发本机软件,则该文件不存在......因此,这个答案对于那里的大量开发人员来说毫无用处 - 可以查看 http://autobuildversion.codeplex.com .. . 但是这个扩展似乎不适用于 VS2010,尽管网站上另有说明——不过,如果你使用的是旧版本的 VS,你可能会很高兴
【讨论】:
我刚刚尝试了 autobuildincrement 方法,但在使用 Visual Studio 2010 时遇到了问题,但我找到了一种让它工作的方法。将“Increment Before Build 设置为 false。即使在 Visual Studio 2010 中,assempblyinfo.cs 文件也会在每次构建后更新。
请注意,您的 dll 上的程序集信息不会在您第一次构建时发生变化,但之后会发生变化。
【讨论】:
DateTime.Parse(@"1/1/2000")
.AddDays(FileVersionInfo.GetVersionInfo(
System.Reflection.Assembly.GetEntryAssembly().Location
).FileBuildPart)
.AddSeconds(FileVersionInfo.GetVersionInfo(
System.Reflection.Assembly.GetEntryAssembly().Location
).FilePrivatePart * 2)
【讨论】: