VSTF Build Workflow(6)为你的文件自动递增版本号

作为三部曲之一,本文介绍的是如何增加AssemblyVersion中的版本号。

每个项目都有一个AssemblyVersion.cs文件,其中,里面有2行是我们所需要的版本号。

image

对于一个编译生成的文件(这里以BuildEngine.dll为例),AssemblyVersion和AssemblyFileVersion会展示在它的Property面板中:

image

下面我们就要在Build的时候控制这两个值,每次Build的时候自动加一。

思路如下:

1.先把AssemblyInfo.cs这个文件check out出来,注意,是自动check out

2.修改AssemblyInfo.cs中的版本信息

3.把之前check out的所有文件都check in进TFS

 

具体步骤如下:

1.添加对Microsoft.TeamFoundation.VersionControl.Client.dll的引用,它一般位于以下路径:

c:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ReferenceAssemblies\v2.0\

2.添加一个新的Activity,命名为AddVersionNumber,它的作用是使某个目录下的所有文件版本递增1,例如:把版本1.0.0.0升级为1.0.1.0

image

3.添加一个新的Activity,命名为CheckOut

image

4.添加一个新的Activity,命名为CheckIn

image

 

接下来,我们将视线转移到Build Template,这里我们仍然从VSTF中copy一份DefaultTemplate.xaml的副本,重命名为CustomTemplate2.xaml。在新的Build Template中,我们创建1个Argument,命名为AssemblyInfoFileMask:

image

我们把之前定义的3个Activity拖到Build Template的Get Workspace(注意,不是Get the Build)之后,这个Activity不太好找,它位于Run On Agent的Initialize Workspace中的最后一个,如下所示:

image

image

分别设置3个Activity必须的属性,直到没有红色惊叹号为止:

image

也许有人会问,在上面图中输入的Workspace和SourceDirectory是在神马地方定义的?这是2个variable,定义在Run On Agent这个Scope中,如下图所示:

image

 

万事俱备,打开Build,将Build Process Template设置为CustomTemplate2.xaml,然后会发现多了一个字段需要我们输入,将其设置为AssemblyInfo.*,从而build执行时会检索文件名为AssemblyInfo的所有类型文件:

image

执行Build,执行前检查Solution中的AssemblyInfo.cs为1.0.0.0

image

Build后生成的文件版本为1.0.1.0

image

再次Build,生成的文件版本为1.0.2.0

image

 

本文下载代码:

posted @ 2011-02-10 11:05  包建强  Views(1504)  Comments(1Edit  收藏  举报