anchor.diff:              Directory.GetDirectories(IO.Path.Combine(pkgDir, "lib"))
               |> Seq.map Path.GetFileName
               |> Seq.sortDescending
  -            |> Seq.tryFind (fun framework ->
  -                framework.StartsWith(targetFramework.Framework) && framework <= targetFramework.Full)
  +            |> Seq.toArray
  +            |> tryFindPackageDllDir targetFramework
               |> function
                   | Some framework -> IO.Path.Combine(pkgDir, "lib", framework, refName + ".dll") |> PaketRef.Dll
                   | None -> failwithf "Cannot match target %s for library %s" targetFramework.Full refName)
   
  -let private readPaketProjectRefLines projFile =
  +let private readPaketProjectRefLines (targetFramework: TargetFramework) projFile =
       let projDir = Path.GetDirectoryName(projFile)
       let projFileName = Path.GetFileName(projFile)
  -    let paketRefs = IO.Path.Combine(projDir, "obj", projFileName + ".references")
  -    if File.Exists(paketRefs)
  -    then File.ReadLines(paketRefs)
  -    else upcast [||] // TODO: Fail if .fsproj.references file not found?
  +    let paketRefs1 = IO.Path.Combine(projDir, "obj", projFileName + "." + targetFramework.Full + ".references")
  +    if File.Exists(paketRefs1) then
  +        File.ReadLines(paketRefs1)
  +    else
  +        let paketRefs2 = IO.Path.Combine(projDir, "obj", projFileName + ".references")
  +        if File.Exists(paketRefs2) then
  +            File.ReadLines(paketRefs2)
  +        else
  +            (Path.GetFileName(paketRefs1), Path.GetFileName(paketRefs2))
  +            ||> sprintf "Could find neither %s nor %s" |> Log.logAlways
  +            upcast [||] // TODO: Fail if .fsproj.references file not found?
   
   let getPaketRefs paketDir targetFramework projFile: PaketRef list =
       match paketDir with
       | None -> []
       | Some paketDir ->
           let paketRefs =
  -            readPaketProjectRefLines projFile
  +            readPaketProjectRefLines targetFramework projFile
               |> Seq.choose (tryGetPaketRef paketDir targetFramework)
               |> Seq.toList
           // paketRefs
  
positive.code: 
  let tryGetFableCoreJsDir projFile =
      let paketDir = tryFindPaketDirFromProject projFile
      tryGetFableCorePkgDir paketDir projFile
      |> Option.map (fun corePkgDir -> IO.Path.Combine(corePkgDir, "fable-core"))
  
  // let checkFableCoreVersion paketDir projFile =
  
negative.code:         // |> Log.logVerbose
          paketRefs
  
  let private tryGetFableCorePkgDir paketDir targetFramework projFile =
      match paketDir with
      | Some paketDir ->
          readPaketProjectRefLines targetFramework projFile
          |> Seq.choose (tryGetPaketRefNameAndDir paketDir (fun l -> l.StartsWith("Fable.Core")))
          |> Seq.tryHead
          |> Option.map snd
  