我可以在Visual Studio 2008中更改默认内部版本号

时间:2010-07-02 19:07:35

标签: visual-studio visual-studio-2008 versioning

我将程序集中的版本号设置为:

[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

2 个答案:

答案 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