anchor.diff:                        | _ -> false)
                           ->  traceWarnfn "Could not download %O %O.%s    %s.%sRetry." packageName version Environment.NewLine exn.Message Environment.NewLine
                               return! download false (attempt + 1)
  -                | exn when String.IsNullOrWhiteSpace !downloadUrl ->
  -                    return raise (Exception(sprintf "Could not download %O %O." packageName version, exn))
  -                | exn -> return raise (Exception(sprintf "Could not download %O %O from %s." packageName version !downloadUrl, exn)) }
  +                | inner when String.IsNullOrWhiteSpace !downloadUrl ->
  +                    return rethrowf exn inner "Could not download %O %O." packageName version
  +                | inner -> return rethrowf exn inner "Could not download %O %O from %s." packageName version !downloadUrl }
   
       async {
           configResolved.Path |> Option.iter SymlinkUtils.delete
  
positive.code:             let! trial2 = trial true
              match trial2 with
              | _ when Array.isEmpty trial2.Versions |> not ->
                  if verbose then
                      reportRequests verbose trial1
                      |> printfn "%s"
                  return trial2.Requests
              | _ ->
  
negative.code:     let nupkgName = packageName.ToString() + "." + version.ToString() + ".nupkg"
      let normalizedNupkgName = NuGetCache.GetPackageFileName packageName version
      let configResolved = config.Resolve root groupName packageName version includeVersionInPath
      let verboseRequest = verbose || isRequestEnvVarSet
      let targetFileName =
          if not isLocalOverride then
              NuGetCache.GetTargetUserNupkg packageName version
  