anchor.diff:              | null -> []
               | x -> [x]
           | _ -> []
  -#else
  -        // FX_ATLEAST_45 is not defined for step when we build compiler with proto compiler.
  -        ignore v
  -        []
  -#endif        
   
       let GetPathToDotNetFrameworkReferenceAssembliesFor40Plus(version) = 
  -#if FX_ATLEAST_45
           // starting with .Net 4.0, the runtime dirs (WindowsFramework) are never used by MSBuild RAR
           let v =
               match version with
  
positive.code:             | null -> []
              | x -> [x]
          | None -> []        
  #else
          // FX_ATLEAST_45 is not defined for step when we build compiler with proto compiler.
          ignore version
          []
  #endif
  
      /// Use MSBuild to determine the version of the highest installed framework.
      let HighestInstalledNetFrameworkVersionMajorMinor() =
  #if FX_ATLEAST_45
          if box (ToolLocationHelper.GetPathToDotNetFramework(TargetDotNetFrameworkVersion.Version461)) <> null then 4, Net461
          elif box (ToolLocationHelper.GetPathToDotNetFramework(TargetDotNetFrameworkVersion.Version46)) <> null then 4, Net46
          // 4.5.2 enumeration is not available in Dev15 MSBuild version
  
negative.code:         elif box (ToolLocationHelper.GetPathToDotNetFramework(TargetDotNetFrameworkVersion.Version451)) <> null then 4, Net451 
          elif box (ToolLocationHelper.GetPathToDotNetFramework(TargetDotNetFrameworkVersion.Version45)) <> null then 4, Net45 
          else 4, Net40 // version is 4.0 assumed since this code is running. 
  
      /// Derive the target framework directories.        
      let DeriveTargetFrameworkDirectories (targetFrameworkVersion:string, logMessage) =
  