微软的MSBuild,是和NAnt一样编译项目的工具。也是在NAnt发展起来的时候微软才推出的工具。但微软的MSBuild却比NAnt复杂许多,如果我们想自己去学习MSbuild,特别是Visual Studio工具自动生成的项目文件内容你根本看不明白了。

我这两天想通过编辑项目属性达到我的目标,即在生成前事件中加一个DOS命令将这个项目之前生成的文件(程序集)做个备份。结果当我运行的时候却发现根本没有成功。

我猜测应该是在生成前事件执行的时候,先执行的是清理任务,所以当我的生成前事件中的命令执行时原来的文件已经被清理走了。

我只能另想办法。在调用MSBuild之前先把文件备份了。再调用MSBuild。我想看看他的调用机制,结果是一通通的文件引用(一堆Targets文件),按照MSBuild官方的说明结合这个文件根本是啥也看不明白。

后来我在想,我第二次调用的时候,不使用Rebuild选项,是不是之前的某些程序集(如多语言的resources.dll)就不会被删除了呢。上班的时候一定要动手实践一下了。