anchor.diff:              | 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
  
positive.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. 
  #else
          // FX_ATLEAST_45 is not defined is required for step when we build compiler with proto compiler and this branch should not be hit
          4, Net40
  #endif
  
      /// Derive the target framework directories.        
      let DeriveTargetFrameworkDirectories (targetFrameworkVersion:string, logMessage) =
  
negative.code:     /// Get the path to the .NET Framework implementation assemblies by using ToolLocationHelper.GetPathToDotNetFramework.
      /// This is only used to specify the "last resort" path for assembly resolution.
      let GetPathToDotNetFrameworkImlpementationAssemblies(v) =
          let v =
              match v with
              | Net11 ->  Some TargetDotNetFrameworkVersion.Version11
  