MSBuild和NANT

昨天,把微软的MSBuild研究了一下。其实.Net平台上的Make工具,已经有了NAnt。但是MSBuild作为官方发布的工具,VS2005对于它有很好的环境支持。
这些Ant类的工具,具有一下特点:

构建程序
可以自动根据文件时间,来进行递增构建。
可以扩充,以完成比较负责的任务。
一般是通过XML来描述构建过程。
一般包含Property 、Target以及Target之间的依赖关系,以构成一个构建序列。
可以指定运行的Target,干不同的事情。
功能强大,并不是只有用来构建程序,还可以比较夸张的说可以干任何需要重复执行的自动化工作。

我的目录下一般分src和debug两个目录,src顾名思义包含源文件,debug包含输出的文件。
以前的Nant文件的内容是:















而新建的MSBuild文件内容为:
debugsrc
g

















可以看到,MSBuild引入的是ItemGroup和PropertyGroup两个概念,不同于NAnt的用${属性}引用,他的里面:
$(Property名)来表示引用PropertyGroup里面的内容
@(Item名)来引用ItemGroup里面的内容
ItemGroup和PropertyGroup不同之处在于是否可以元素是否可以出现多次,ItemGroup可以,Property则不可以。
其他的不同之处在于递增构建的支持,在MSBuild里面必须明确指出。如上面的CSC里面必须指定Inputs和Outputs,否则MSBuild不是递增构建。而NAant则默认都是递增构建,即只编译比较新的源文件。
其他的都支持条件格式。NAant还支持内部的C#语句,发现就会自动编译。
MSBuild还支持一些其他的Task,都是.Net平台上面的东西,如Mainfest、SNK等,对于.Net的编译显的比较专业。
自动构建确实是一个好东西。他让你远离IDE,没有了代码自动提示,没有了花哨的界面,只有代码。感觉真是不同。
来源:http://blog.163.com/gm8pleasure@126/blog/static/25798077200610143511381/

此条目发表在other分类目录,贴了标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据