这就是我们所拥有的:ccnet + tfs + msbuild.
问题是由于很多项目,我们的构建过程太慢了.
我做了一些调查,这就是我想做的事情.
编译完每个项目后,它会从输出文件夹复制到共享文件夹,即使这个项目没有编译,这个操作也可以.所以我检查了msbuild的详细日志,这就是我发现的内容:跳过目标"CoreCompile",因为所有输出文件都是相对于输入文件的最新版本.
此验证操作在Microsoft.TeamFoundation.Build.targets中声明.问题是我如何拦截这些信息,创建自己的目标添加一些条件,并做一些触发器,如果出现"跳过目标"CoreCompile"消息"然后不运行我的复制目标并跳过它,如果项目已经编译然后应该运行此副本目标.
我需要从chageset获取已更改文件的列表,并排除所有其他垃圾.
我可以从命令tf changeset/i $(changesetnumber)获取此信息,但除了文件列表之外,我还有很多其他信息,我不需要这些信息用于我的目的.
或者也许有人可以告诉如何从ccnet获取此文件列表,以便我可以通过属性将其发送到我的msbuild.proj文件.