anchor.diff:          
       enableProcessTracing <- tracing
       if result <> 0 then 
  -        if trials > 0 then publishSymbols (trials - 1) parameters else
  -        failwithf "Error during NuGet symbol push. %s %s" parameters.ToolPath args     
  -
  -let private runNuget parameters nuSpec =
  -    createNuspecFile parameters nuSpec
  -    |> pack parameters
  -               
  -    if parameters.Publish then 
  -        publish parameters.PublishTrials parameters 
  -        if parameters.ProjectFile <> null then 
  -            publishSymbols parameters.PublishTrials parameters
  +        if parameters.PublishTrials > 0 then 
  +            publishSymbols { parameters with PublishTrials = parameters.PublishTrials - 1 }
  +        else
  +            failwithf "Error during NuGet symbol push. %s %s" parameters.ToolPath args     
   
   /// Creates a new NuGet package   
   let NuGet setParams nuSpec =
       traceStartTask "NuGet" nuSpec
       let parameters = NuGetDefaults() |> setParams
       try    
  -        runNuget parameters nuSpec
  +        nuSpec
  +        |> createNuspecFile parameters 
  +        |> pack parameters
  +               
  +        if parameters.Publish then 
  +            publish parameters 
  +            if parameters.ProjectFile <> null then 
  +                publishSymbols parameters
       with
       | exn -> 
           exn.Message
  
positive.code:         
      enableProcessTracing <- tracing
      if result <> 0 then 
          if trials > 0 then publish (trials - 1) parameters else
          failwithf "Error during NuGet push. %s %s" parameters.ToolPath args
  
  // push package to symbol server (and try again if something fails)
  let rec private publishSymbols trials parameters =
      let packageFile = sprintf "%s.%s.symbols.nupkg" parameters.Project parameters.Version
      let tracing = enableProcessTracing
      enableProcessTracing <- false
      let args = sprintf "push -source %s \"%s\" %s" parameters.PublishUrl packageFile parameters.AccessKey
  
      if tracing then 
          args
  
negative.code: 
      processTemplates replacements [specFile]
  
      if parameters.ProjectFile <> null then
          // create symbols package
          let args = sprintf "pack -sym \"%s\"" (parameters.ProjectFile |> FullName)
  