Build 如何加速Nant构建?
我们有许多Nant脚本来编译.NET代码。这些构建需要5-10分钟才能运行,我想找到一种加速它们的方法 我们的Nant脚本看起来像Build 如何加速Nant构建?,build,performance,nant,compilation,Build,Performance,Nant,Compilation,我们有许多Nant脚本来编译.NET代码。这些构建需要5-10分钟才能运行,我想找到一种加速它们的方法 我们的Nant脚本看起来像 <target name="compile.XYZ" description="Compiles the source code"> <msbuild project="${src.dir}\XYZ.sln" verbosity="${build.verbosity}"> <property name="Co
<target name="compile.XYZ" description="Compiles the source code">
<msbuild project="${src.dir}\XYZ.sln" verbosity="${build.verbosity}">
<property name="Configuration" value="${build.config}" />
<property name="OutputPath" value="${build.fullpath}/${prefix.xyz}" />
<property name="ReferencePath" value="${assembly.dir}" />
</msbuild>
</target>
它们都与此非常相似。我确实为nant进行了调查,但它看起来有点过时,所以我有点犹豫是否使用它,尽管这可能非常方便,因为我们的构建中确实有多个目标
如果您能提供任何帮助来提高这些构建的性能,我们将不胜感激
谢谢:)如果你有足够的RAM,我会买一个RAM磁盘应用程序(我使用这个程序效果很好) 请在此驱动器上安装源代码,然后安装Nant。在那里安装第三方库和其他支持基础设施。它应该产生至少33%到50%的性能跳变
此外,获取SSD并在其上安装OS和.NET framework。总之,您应该能够进一步降低成本。解决方案中的项目越多,构建所需的时间就越长。 解决方案数量相同 对此你真的无能为力。 顺便说一句,这里慢的不是Nant,而是它的msbuild 您可以尝试一下Scott Hanselsman的一些建议: 实际上,这要求您将“BuildInParallel=“true”传递给任务,尽管存在某些警告 这将允许并行构建同一解决方案中的项目,但我看不到并行构建多个解决方案的方法
为此,您可以制作一个元解决方案(仅手工维护,或在生成之前在nant中自动生成),在其中添加所有不同的项目。另一种方法是根据对代码的理解将MSBuild拆分任务。 可以使用/m:x参数指定可以使用多少CPU。或者只是/m来使用全部 一些供您阅读的链接:
另一个要考虑的问题是,您的项目是否遵循多个开发项目的“干燥原则”。如果两个不相关的项目具有具有类似用途的类,则可以将它们合并为一个类并移动到共享库中。通过消除代码重复,您不仅降低了维护成本,同时还优化了构建过程。如果您的开发人员专门从事某些项目,则在不相关的项目中查找重复会非常耗时。
您好。谢谢你的回复。如果可能的话,我希望在不购买硬件的情况下解决这个问题。如果有一种方法可以将任务拆分为异步运行,那将是理想的…:)我没有意识到你想要分割任务。看看我的另一个答案。