anchor.diff:  "CreateNuget" ==> "PublishNuget" ==> "Nuget"
   
   // all
  +Target "All" DoNothing
   "BuildRelease" ==> "All"
  -
  -RunTargetOrDefault "All"+"RunTests" ==> "All"
  +"Nuget" ==> "All"
  +
  +RunTargetOrDefault "Help"
positive.code: )
  
  Target "PublishNuget" (fun _ ->
      let projects = !! "./bin/nuget/*.nupkg" -- "./bin/nuget/*.symbols.nupkg"
      let apiKey = getBuildParamOrDefault "nugetkey" ""
      let source = getBuildParamOrDefault "nugetpublishurl" ""
      let symbolSource = getBuildParamOrDefault "symbolspublishurl" ""
      let shouldPublishSymbolsPackages = not (symbolSource = "")
  
      if (not (source = "") && not (apiKey = "") && shouldPublishSymbolsPackages) then
          let runSingleProject project =
              DotNetCli.RunCommand
                  (fun p -> 
                      { p with 
                          TimeOut = TimeSpan.FromMinutes 10. })
                  (sprintf "nuget push %s --api-key %s --source %s --symbol-source %s" project apiKey source symbolSource)
  
          projects |> Seq.iter (runSingleProject)
      else if (not (source = "") && not (apiKey = "") && not shouldPublishSymbolsPackages) then
          let runSingleProject project =
              DotNetCli.RunCommand
                  (fun p -> 
                      { p with 
                          TimeOut = TimeSpan.FromMinutes 10. })
                  (sprintf "nuget push %s --api-key %s --source %s" project apiKey source)
  
          projects |> Seq.iter (runSingleProject)
  )
  
  //--------------------------------------------------------------------------------
  //  Target dependencies
  //--------------------------------------------------------------------------------
  
  Target "BuildRelease" DoNothing
  Target "All" DoNothing
  Target "Nuget" DoNothing
  
  // build dependencies
  
negative.code:     CleanDir outputBinaries
      CleanDir outputNuGet
  
      CleanDirs !! "./src/**/bin"
      CleanDirs !! "./src/**/obj"
  )
  
  Target "RestorePackages" (fun _ ->
  