TFS自动化编译研究
来源:互联网 发布:数据采集与控制系统 编辑:程序博客网 时间:2024/06/05 07:38
TFS上有一个TeamBuildTypes
会有3个文件:
TFSBuild.proj
TFSBuild.rsp
WorkspaceMapping.xml
C:\Program Files\MSBuild\Microsoft\VisualStudio\v8.0\TeamBuild
Microsoft.TeamFoundation.Build.targets
团队项目添加生成定义的时候,在团队项目源代码里面,
在$/<TeamProject>/TeamBuildTypes/<TeamBuildDefinitionName>目录下生成
要建立TFSBuild.proj
整个Team Build的流程,这个流程以默认的流程定义为基础,拼合了自定义的流程. 为了加深印象, 我们把这个流程按照时间顺序大体归一下类:
· -> Initialize :初始化(包括设定生成过程的各种环境变量和属性,生成BuildNumber)
· -> Clean :清除中间文件和上一次生成的文件
· -> Get :获取最新版本
· -> Lable :给这次生成打上一个标记并记录
· -> Build :编译生成
· -> Test :运行各种测试, 比如unit tests文件,甚至可以直接提供扩展
· -> Packaging :打包程序集生成安装包
· -> Drop :将生成的程序集和安装包,以及log文件,投递到指定位置
一般是这样的: xx.xx.xxxxxx.xx,即主版本号(Major Version No.),次版本号(Minor Version No.),生成号(Build No.),修订号(Revision No.)
主版本号标示较大的功能更新或者说产品在特性(比如UI/主要业务逻辑更新/增加重大新特性)上有了翻天覆地的变化;次版本号标示对主要功能进行修补,主要定位是稳定性和兼容性问题;生成号一般标示这是生成过程时间信息的,由于通行的做法是这个号码每天加1,所以现在几乎快要被理解成离某一天(比如项目开始那天)的天数了;对应于生成号的实际含义,修订号被用来标示当天的第几次生成过程.这是比较通用的做法
"在MSBuild引擎驱动下的,以团队基础框架提供的包含一系列生成目标(Target)的默认生成脚本文件 - Microsoft.TeamFoundation.Build.targets -为基础的, 可以被用户自定义生成脚本文件 - tfsbuild.proj -所覆盖从而形成一条确定的可执行的生成流程.",
应用Desktop Build的对象文件,还是tfsbuild.proj.微软把默认的Desktop Build流程定义在Microsoft.TeamFoudation.Build.targets中,通过import语句导入到tfsbuild.proj文件中.现在我们用实例看一下如何使用Desktop Build.打开命令行工具(VS2008 command prompt),定位到含有tfsbuild.proj的位置,输入msbuild tfsbuild.proj,回车:
msbuild tfsbuild.proj
/p:Configuration=Debug;Platform=x64;BuildRoot=c:\bld;AssemblyBuildNumber=0;AssemblyRevisionNumber=0
等输出完毕, 一次Desktop Build就完成了.如果您没有重写BuildRoot属性的话,默认的BuildRoot就是您工作区的最顶目录,在这个目录下, 您可以看到一个Binaries目录,里面就是这次编译的输出并且包含了生成的安装包,当然如果您在重写服务器生成流程的时候如果改写了一些位置属性,那么就去对应的地方查找结果吧:
- TFS自动化编译研究
- TFS编译
- TFS编译
- TFS学习研究
- sles10编译安装tfs
- 使用 Gradle 实现 TFS 构建自动化
- tfs自动编译msbuild参数
- 自动化编译
- TFS双机热备份机制研究
- 自动化测试研究
- 自动化测试工具研究
- TFS
- TFS
- TFS
- CentOS 6.5下编译安装TFS
- TFS 部署管理器 - 自动化你的部署流程
- TFS Build中对强签名的自动化Build方法
- TFS:Team Foundation Build 2010(生成自动化) 1
- Windows搭建Mantis
- shell脚本报错说 bash解释器损坏,没有该目录或文件的解决方案
- 正则----学习资源网站
- LINQ体验(7)——LINQ to SQL语句之Group By/Having和Exists/In/Any/All/Contains
- (转)Linux的中断的初始化
- TFS自动化编译研究
- LINQ体验(8)——LINQ to SQL语句之Union All/Union/Intersect和Top/Bottom和Paging和SqlMethods
- 详解CSS中:nth-child的用法
- C#泛型列表List<T>基本用法
- KindEditor 4.1 发布,在线HTML编辑器
- LINQ体验(9)——LINQ to SQL语句之Insert/Update/Delete操作
- GIT和SVN之间的五个基本区别
- stringreplace
- LINQ体验(10)——LINQ to SQL语句之开放式并发控制和事务