我正在使用NAnt构建相同软件的5个不同配置的安装程序包。这些任务可以并行处理,因为它们彼此之间没有依赖关系。Installshield用于构建这些配置似乎在多核CPU使用方面效率低下(在4核机器上CPU使用率限制在25%)。我一直在寻找一种简单的方法来并行处理任务,只找到了这个,这几乎是我需要的。然而,该项目的源代码不可用,并且引用了最新版本的NAnt 0.91中不存在的某些类型,我们需要该版本以支持.NET 4.0。除了编写自己的NAnt扩展之外,您有什么解决方法吗?
我通过写信给作者找到了源代码。现在它是CIFactory项目的一部分,源代码可以通过项目主页访问。经过一些修改,我成功地在最新版本的NAnt上运行它。我会在解决一些小问题后发布它,主要是关于输出流的位置。
说实话,这并不是特别困难,但我不知道是否有其他现成的项目或贡献任务适用于NAnt,可以完成它。因此,你唯一的选择就是编写自己的并行任务实现。话虽如此,由于该人提供了已编译的程序集,如果你知道我的意思,你可以在Reflector中查看它们并获得一般想法。
请查看https://github.com/NAntCrossCompile/NAnt.Parallel 正在开发一个插件,可以基于文件、文件夹、字符串等集合并行执行任务。