MSBuild和TFSBuild有什么区别?

12

背景:我们有一个TFS服务器,用于管理源代码、跟踪工作项和错误。我们还设置了CC.Net来协助进行CI(主要是构建和运行单元测试)。我们使用.net framework 3.5和VS 2008。

我熟悉MSBuild,并在我们当前的项目中使用它来完成许多预部署和部署任务。但是,我不确定TFSBuild的目的是什么。我认为它用于在TFS服务器级别执行构建任务。但是我找不到好的文档说明我(作为开发人员,而不是我们TFS的管理员...开发人员只具有读取访问权限)如何使用TFS Build使我的部署/CI任务更轻松。当我已经在使用MSBuild进行构建过程并且CC.Net已经运行我们拥有的一组单元测试时,使用TFSBuild能否使我的任务更容易/更有效率?TFSBuild是否是CC.Net的替代品?TFSBuild与Visual Studio 2008的集成情况如何?

更新:如何将'TeamBuild'纳入这个堆栈中?不只是理论方面,一个简单的把这些东西结合在一起的示例会非常有帮助。现在,我们只做两件事:使用MSBuild执行部署任务(更新配置文件、版本信息、将应用程序发布到远程服务器),然后CC.Net接管。我该在哪里加入TeamBuild/TFSBuild呢?更重要的是,我需要它吗?我了解到每个人的需求都不同,但是它通常可以提供帮助吗?从回答中得到的一个好理由使用TFS构建是在某些条件下自动创建TFS工单。像这样的一些东西通常会做些什么呢?


你是指团队构建吗?我所知道的唯一的TFSBuild是TFSBuild.proj文件。 - John Saunders
John,我现在自己也有些困惑于TeamBuild和TFSBuild之间的区别。:) 如果你能对两者进行解释,那将非常有帮助。 - Punit Vora
"TFBuild" 并不是一个可执行组件。请参考下面的答案。 - John Saunders
1
@约翰 C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\tfsbuild.exe - Ed Guiness
3个回答

15

TFS使用与Visual Studio 2008本地使用相同的MSBuild 3.5进行自动构建。 TFS通过提供导入TFS特定目标和丰富解决方案的构建顺序的.proj文件,定义了自己的构建顺序,具有在团队环境中有用的功能(即从源代码控制获取最新版本、进行构建、如果构建失败则创建TFS工单等)。

这里是我尝试理解所有这些构建框架的方法(存档在此处),并提供历史视角:(我的猜测和假设可能无效,但对于新手来说仍然是有用的概念信息)。请查看名为“与TFS相关的MSBuild概念”的最后一节--它有一些有用的链接。


3
MSBuild与TFSBuild
MSBuild是用于实际构建的技术。在Team Explorer中的“构建”节点是一个XML文件,它输入基本参数,这些参数将被输入到MSBuild中。当您在此节点中添加一个构建时,它实际上会向您的源代码控制树中添加一些文件。这些文件与MSBuild相关联,您可以对其进行自定义。
您可以非常容易地自动化您的构建。有一个名为tfsbuild的命令行工具,应该位于%Program Files%\Microsoft Visual Studio 8\Common7\IDE文件夹中。您需要指定TFS服务器、团队项目和构建类型(在“构建”节点中创建的名称)。使用此命令行实用程序,并使用Windows中的任务计划程序来调用它(程序文件->附件->系统工具->计划任务)。
来源:MSDN论坛

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接