anchor.diff:                  let cacheFile = FileInfo(Path.Combine(cacheFolder,normalizedNupkgName))
                   if cacheFile.Exists && cacheFile.Length > 0L then
                       tracefn "Copying %O %O from cache %s" packageName version cache.Location
  +                    ensureDir targetFileName
                       File.Copy(cacheFile.FullName,targetFileName)
                       true
                   else
                       let cacheFile = FileInfo(Path.Combine(cacheFolder,nupkgName))
                       if cacheFile.Exists && cacheFile.Length > 0L then
                           tracefn "Copying %O %O from cache %s" packageName version cache.Location
  +                        ensureDir targetFileName
                           File.Copy(cacheFile.FullName,targetFileName)
                           true
                       else
  
positive.code:                     let nupkg = NuGetLocal.findLocalPackage di.FullName packageName version
  
                      use _ = Profile.startCategory Profile.Category.FileIO
                      let parent = Path.GetDirectoryName targetFileName
                      if not (Directory.Exists parent) then Directory.CreateDirectory parent |> ignore
                      File.Copy(nupkg.FullName,targetFileName,true)
                  | _ ->
                  // discover the link on the fly
  
negative.code:             CleanDir p
          | _ -> ()
  
      let ensureDir fileName =
          let parent = Path.GetDirectoryName fileName
          if not (Directory.Exists parent) then Directory.CreateDirectory parent |> ignore
  
      let rec getFromCache (caches:Cache list) =
          match caches with
          | cache::rest ->
  