如何设置 visual studio 2010 以在每个构建中设置为项目的自动增量版本?
vs2010
上是否存在此功能?
答案 0 :(得分:16)
更改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 :(得分:15)
正如其他人提到的那样,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
答案 2 :(得分:4)
如果用c / c ++开发本机软件,那么AssemblyInfo.cs文件就不存在了...因此这个答案对于那里的很多开发人员来说都是无用的 - 人们可以看看http://autobuildversion.codeplex.com ...但是这个扩展似乎不适用于VS2010,尽管网站说不然 - 如果你使用旧版本的VS,你可能会很高兴,不过
答案 3 :(得分:1)
我刚刚尝试了autobuildincrement方法并且遇到了Visual Studio 2010的问题,但是我找到了一种方法来使它工作。将“构建前增量”设置为“假”。然后,即使在Visual Studio 2010中,每次构建后都会更新assempblyinfo.cs文件。
请注意,您的dll上的程序集信息在第一次构建时不会更改,但会在此之后更改。
答案 4 :(得分:1)
DateTime.Parse(@"1/1/2000")
.AddDays(FileVersionInfo.GetVersionInfo(
System.Reflection.Assembly.GetEntryAssembly().Location
).FileBuildPart)
.AddSeconds(FileVersionInfo.GetVersionInfo(
System.Reflection.Assembly.GetEntryAssembly().Location
).FilePrivatePart * 2)