@@ -129,18 +129,23 @@ public CakeReport RunTarget(ICakeContext context, IExecutionStrategy strategy, s
129129
130130 try
131131 {
132- var executingTasks = graph . Traverse ( target ) ;
132+ var executingTaskNames = graph . Traverse ( target ) ;
133+
134+ var executingTasks = new CakeTask [ executingTaskNames . Count ] ;
135+ for ( var i = 0 ; i < executingTasks . Length ; i ++ )
136+ {
137+ var name = executingTaskNames [ i ] ;
138+ executingTasks [ i ] = _tasks . FirstOrDefault ( x => x . Name . Equals ( name , StringComparison . OrdinalIgnoreCase ) ) ;
139+ Debug . Assert ( executingTasks [ i ] != null , "Node should not be null." ) ;
140+ }
141+
133142 PerformSetup ( strategy , context , executingTasks ) ;
134143
135144 var stopWatch = new Stopwatch ( ) ;
136145 var report = new CakeReport ( ) ;
137146
138- foreach ( var taskNode in executingTasks )
147+ foreach ( var task in executingTasks )
139148 {
140- // Get the task.
141- var task = _tasks . FirstOrDefault ( x => x . Name . Equals ( taskNode , StringComparison . OrdinalIgnoreCase ) ) ;
142- Debug . Assert ( task != null , "Node should not be null." ) ;
143-
144149 // Is this the current target?
145150 var isTarget = task . Name . Equals ( target , StringComparison . OrdinalIgnoreCase ) ;
146151
@@ -199,7 +204,7 @@ public void RegisterTaskTeardownAction(Action<ITaskTeardownContext> action)
199204 /// </summary>
200205 public event EventHandler < TaskTeardownEventArgs > TaskTeardown ;
201206
202- private void PerformSetup ( IExecutionStrategy strategy , ICakeContext context , IReadOnlyList < string > tasksToExecute )
207+ private void PerformSetup ( IExecutionStrategy strategy , ICakeContext context , IReadOnlyList < CakeTask > tasksToExecute )
203208 {
204209 var setupContext = new SetupContext ( context , tasksToExecute ) ;
205210 PublishEvent ( Setup , new SetupEventArgs ( setupContext ) ) ;
0 commit comments