anchor.diff:        "Just builds the API docs for Akka.NET locally. Does not attempt to publish."
         ""
         "build PublishDocs azureKey=<key> "
  -      "                  azureAccount=<account> "
         "                  azureUrl=<url> "
         "                 [unstable=true]"
         ""
         "Arguments for PublishDocs target:"
         "   azureKey=<key>             Azure blob storage key."
         "                              Used to authenticate to the storage account."
  -      ""
  -      "   azureAccount=<account>     Azure storage account name."
  -      "                              Used to identify the storage account."
         ""
         "   azureUrl=<url>             Base URL for Azure storage container."
         "                              FAKE will automatically set container"
  
positive.code:                 info.Arguments <- arguments) (TimeSpan.FromMinutes 120.0) //takes a very long time to upload
              if result <> 0 then failwithf "Error during AzCopy.exe upload to azure."
          with exn -> 
              if (trialsLeft > 0) then (pushToAzure docDir azureUrl container azureAccount azureKey (trialsLeft-1))
              else raise exn
      let canPush = hasBuildParam "azureKey" && hasBuildParam "azureUrl"
      if (canPush) then
           printfn "Uploading API docs to Azure..."
           let azureUrl = getBuildParam "azureUrl"
           let azureAccount = getBuildParam "azureAccount"
           let azureKey = (getBuildParam "azureKey") + "==" //hack, because it looks like FAKE arg parsing chops off the "==" that gets tacked onto the end of each Azure storage key
           if(isUnstableDocs) then
              pushToAzure docDir azureUrl "unstable" azureAccount azureKey 3
           if(not isUnstableDocs) then
              pushToAzure docDir azureUrl "stable" azureAccount azureKey 3
              pushToAzure docDir azureUrl release.NugetVersion azureAccount azureKey 3
      if(not canPush) then
          printfn "Missing required paraments to push docs to Azure. Run build HelpDocs to find out!"
              
  
negative.code: //--------------------------------------------------------------------------------
  // Push DOCs content to Windows Azure blob storage
  Target "AzureDocsDeploy" (fun _ ->
      let rec pushToAzure docDir azureUrl container azureKey trialsLeft =
          let tracing = enableProcessTracing
          enableProcessTracing <- false
          let arguments = sprintf "/Source:%s /Dest:%s /DestKey:%s /S /Y" (Path.GetFullPath docDir) (azureUrl @@ container) azureKey
          tracefn "Pushing docs to %s. Attempts left: %d" (azureUrl) trialsLeft
          try 
              
  