我是MSBuild的新手,有几个问题:
使用MSBuild可以实现哪些目标?
是否可以使用MSBuild进行测试?
如何将MSBuild与TFS集成?这样做有什么好处?
答案 0 :(得分:4)
1 - http://msdn.microsoft.com/en-us/library/0k6kkbsd.aspx
2 - 是
3 - TFS Build运行MSBuild目标。它为您提供持续集成,可以提前警告您失败。
答案 1 :(得分:2)
作为#1的一个例子,我上周工作的脚本做了以下
所以,现在整个过程可以快速完成,并且以100%可重复的方式完成,甚至可以在别人的机器上完成。
这是我的第一个主要的MSBuild脚本,它是在两个工作日内构建的(一直没有坚定地工作,主要是在等待人们回复时)。几乎所有都是使用开箱即用的MSBuild完成的。压缩来自MSBuild Extension Pack,并且cabwiz工具周围的包装器来自ctacke's blog。 Gzip任务是在大约10分钟内创建的,对如何编写MSBuild任务以及System.Web.Compression中的Gzip库知之甚少。
快速查看会生成msbuildtasks项目,其中包含NUnit任务。查看该网站上的任务列表,了解可以完成的一些事情。
答案 2 :(得分:0)
使用MSBuild可以实现哪些目标?
当您手动部署应用程序时,几乎可以完成所需的一切。主要是:
编译代码的最新版本
创建和删除备份
为不同的环境创建特定的配置文件(web.configs / app.configs)
部署到任何环境
对部署的版本进行一些冒烟测试,如果失败则自动恢复备份
如果有什么是你做不到的,也许有人编程了一些东西(例如参见这个有用的网站http://msbuildtasks.tigris.org),或者你可以自己编程。
是否可以使用MSBuild进行测试?
是。您可以运行单元测试的子集(或所有单元测试)并查看结果,使构建失败或在任何测试失败时发出警告。示例pic:
如何将MSBuild与TFS集成?这样做有什么好处?
主要是您的构建脚本将从TFS获取最新版本的代码。您还可以使用标记的构建(f.e:alpha1,alpha2等),并在每个构建中查看包含哪些变更集。
使用TFS / MSBuilds的要点是持续集成,至少每天/每晚自动构建,甚至每次有人检查某些代码时(如果项目很小)自动构建。这样你
答案 3 :(得分:0)
msbuild的新手你说...好吧,msbuild是一个基于xml的元语言,主要用于驱动代码的编译。作为一种元语言,它可以用来做任何事情。其中的主要构建块是任务。除了内置的标准任务,您可以在c#中编写自定义任务,因此您对msbuild可以执行的操作没有限制。另外,内置的Exec任务意味着你可以调用任何exe。
现在,它正在研究它能做什么,而不是它最擅长的是什么。 msbuild的优势在于增量构建方面。正如我之前所说,它主要是为了驱动代码的编译。增量构建功能可以使构建更快,因为只有更改的文件才能级联其输出。这是msbuild的一个高级方面,但它的优势所在。
可以用于测试吗?当然,它可以做任何事情。如果您使用TFS2005 / 8,则调用的teambuild msbuild脚本已执行测试并将结果发布回TFS服务器。 (在TFS2010中也是如此,但仅使用升级构建模板)。
与TFS的集成取决于您的意思。 Msbuild是TFS2005 / 8的构建引擎,因此它没有得到更多集成。在TFS2010上,它仍然用于编译解决方案,但WF4现在是构建引擎。为兼容性,TFS2005 / 8的所有msbuild任务也可在TFS2010中使用。
因此,如果您使用TFS,那么从一个角度来看,您已经在整合msbuild和TFS。