我将程序集中的版本号设置为:
[assembly: AssemblyVersion("1.0.*")]
首次重建后,我得到了这个版本号:
1.0.3835.35633
<major version>.<minor version>.<build number>.<revision>
在MSDN article about assembly version属性中,确实有简短说明:
默认内部版本号每天递增。
我有什么方法可以将默认内部版本号重置为例如1并让Visual Studio自动递增。
修改
我发现information内部版本号是自2000-01-01以来的天数。我在两台不同的电脑上检查过,确实如此。在上面的内部版本号中,3835是2000-01-01和2010-07-02之间的天数
因此,看起来默认的内部版本号无法更改,并且对于所有VS2008安装都是相同的
我不喜欢这个编号模式,所以我会尝试两个加载项 - 一个是Alek suggested in his answer,另一个是我找到的:Build Version Increment Add-In Visual Studio
答案 0 :(得分:1)
我不认为你可以在Visual Studio中使它像本机一样工作,但你可以试试Versioning Controlled Build加载项,看看它是否能满足你的要求。
答案 1 :(得分:1)
如果您使用的是MSBuild,我建议您安装可以安装nuget的msbuildtasks(https://github.com/loresoft/msbuildtasks)。
执行此操作后,它将在解决方案的根目录中生成build.proj,您可以创建自己的版本文件,用于管理版本信息。
它支持使用MS的构建和修订属性,并且还支持覆盖开始日期
我制作了一个主要和次要版本文件并将它们放在最初的
中<VersionFile Condition=" '$(VersionFile)' == '' ">$(MsBuildProjectDirectory)\VersionMajor.txt</VersionFile>
<VersionSuffixFile Condition=" '$(VersionSuffixFile)' == '' ">$(MsBuildProjectDirectory)\VersionMinor.txt</VersionSuffixFile>
在这些文件中,我只有数字2和数字1(分别)
然后我创建了另一个包含完整版本号(结果有效的地方)的文件作为version.txt。它包含2.1.0.0
然后,在我的实际构建任务中,我添加了
<Version VersionFile=".\Version.txt" BuildType="Automatic" RevisionType="BuildIncrement" StartDate="2015-01-01">
<Output TaskParameter="Build" PropertyName="Build" />
<Output TaskParameter="Revision" PropertyName="Revision" />
</Version>
这给了我一个Build和Revision参数,可以在别处使用。
编写汇编信息的地方我就像这样使用它们:
AssemblyVersion="$(Version).$(VersionSuffix).$(Build).$(Revision)"
AssemblyFileVersion="$(Version).$(VersionSuffix).$(Build).$(Revision)"
繁荣!我有很好的版本。我自己管理我的主要和次要(我将切换那些使用git分支,也是2.1和构建任务可以拉动),并且构建增加了自StartDate以来的天数(我设置为我为每个构建创建了分支)和修订自动增量,并在构建重置为0时重置为0.
如果你看一下github上的buildtasks源代码,你可以看到更多:https://github.com/loresoft/msbuildtasks/blob/master/Source/MSBuild.Community.Tasks/Version.cs