У меня есть скрипт сборки nant, который определяет компиляцию различных файлов решений Visual Studio.
<target name="compile.solution1" description="Compiles solution 1">
<msbuild project="${src.dir}\Solution1.sln" verbosity="${build.verbosity}">
<property name="Configuration" value="${build.config}" />
<property name="OutputPath" value="${build.fullpath}/${prefix.sol1}" />
<property name="ReferencePath" value="${assembly.dir}" />
</msbuild>
</target>
У меня есть несколько решений, указанных в целях compile.solution1, compile.solution2, compile.solution3 ... compile.solution7
У меня есть еще одна цель, которая указывает, что должна быть скомпилирована целая куча решений:
<target name="compile" depends="compile.solution1, compile.solution2,
compile.solution3, compile.solution4, compile.solution5, compile.solution6,
compile.solution7" description="Compiles all targets" />
Когда я определяю время, необходимое для выполнения цели "compile" и сравниваю ее с суммой времени, которое она выполняет для выполнения каждой из отдельных целей compile.solutionX, я обнаруживаю, что цель "compile" занимает 30 секунд больше.
Я не понимаю, почему это так? На мой взгляд, цель «compile» должна действовать как цикл for, и разница между ней и выполнением каждого из них должна быть минимальной.
Кто-нибудь знает, происходит ли больше в фоновом режиме в Nant при обработке нескольких решений, определенных в одной цели?
Извините за ужасный заголовок вопроса ... Я просто не знал, как его сформулировать.