2009-07-17 4 views
0

У меня есть сценарий сборки nant, который определяет компиляцию различных файлов решений Visual Studio.Почему обработка нескольких отдельных целей занимает больше времени, когда Nant направляется на обработку их из одной цели?

<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.solutionX я считаю, что " compile "занимает 30 секунд дольше.

Я не понимаю, почему это так? На мой взгляд, цель «компиляция» должна действовать как цикл for, а разница между ним и выполнением каждого из них должна быть минимальной.

Знает ли кто-нибудь, если в Нанте происходит больше, когда обрабатывается несколько решений, определенных в одной цели?

Извините за ужасное название вопроса .... Я просто не знал, как это сформулировать.

ответ

2

Я предполагаю, что оценка зависимостей занимает больше времени, когда у вас есть несколько целей, перечисленных в атрибуте depends, и что для каждого нетривиального объекта, добавленного в список, требуется дополнительное время.