作为三部曲之一,本文介绍的是如何增加AssemblyVersion中的版本号。
每个项目都有一个AssemblyVersion.cs文件,其中,里面有2行是我们所需要的版本号。
对于一个编译生成的文件(这里以BuildEngine.dll为例),AssemblyVersion和AssemblyFileVersion会展示在它的Property面板中:
下面我们就要在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
3.添加一个新的Activity,命名为CheckOut
4.添加一个新的Activity,命名为CheckIn
接下来,我们将视线转移到Build Template,这里我们仍然从VSTF中copy一份DefaultTemplate.xaml的副本,重命名为CustomTemplate2.xaml。在新的Build Template中,我们创建1个Argument,命名为AssemblyInfoFileMask:
我们把之前定义的3个Activity拖到Build Template的Get Workspace(注意,不是Get the Build)之后,这个Activity不太好找,它位于Run On Agent的Initialize Workspace中的最后一个,如下所示:
分别设置3个Activity必须的属性,直到没有红色惊叹号为止:
也许有人会问,在上面图中输入的Workspace和SourceDirectory是在神马地方定义的?这是2个variable,定义在Run On Agent这个Scope中,如下图所示:
万事俱备,打开Build,将Build Process Template设置为CustomTemplate2.xaml,然后会发现多了一个字段需要我们输入,将其设置为AssemblyInfo.*,从而build执行时会检索文件名为AssemblyInfo的所有类型文件:
执行Build,执行前检查Solution中的AssemblyInfo.cs为1.0.0.0
Build后生成的文件版本为1.0.1.0
再次Build,生成的文件版本为1.0.2.0
本文下载代码: