anchor.diff:                      assemblyName, highestPosition, assemblyGroup)
                   |> Array.ofSeq
   
  -            let logMessage showMessages = 
  -                if showMessages && tcConfig.showReferenceResolutions then (fun (message: string)->dprintf "%s\n" message)
  -                else ignore
  -
  -            let logDiagnostic showMessages = 
  -                (fun isError code message->
  -                    if showMessages && mode = ResolveAssemblyReferenceMode.ReportErrors then 
  -                      if isError then
  -                        errorR(MSBuildReferenceResolutionError(code, message, errorAndWarningRange))
  -                      else
  -                        match code with 
  -                        // These are warnings that mean 'not resolved' for some assembly.
  -                        // Note that we don't get to know the name of the assembly that couldn't be resolved.
  -                        // Ignore these and rely on the logic below to emit an error for each unresolved reference.
  -                        | "MSB3246" // Resolved file has a bad image, no metadata, or is otherwise inaccessible.
  -                        | "MSB3106"  
  -                            -> ()
  -                        | _ -> 
  -                            if code = "MSB3245" then 
  -                                errorR(MSBuildReferenceResolutionWarning(code, message, errorAndWarningRange))
  -                            else
  -                                warning(MSBuildReferenceResolutionWarning(code, message, errorAndWarningRange)))
  -
  -            let targetProcessorArchitecture = 
  -                    match tcConfig.platform with
  -                    | None -> "MSIL"
  -                    | Some X86 -> "x86"
  -                    | Some AMD64 -> "amd64"
  -                    | Some IA64 -> "ia64"
  -
               // First, try to resolve everything as a file using simple resolution
               let resolvedAsFile = 
                   groupedReferences 
  
positive.code:     member tcConfig.ResolveSourceFile(m, nm, pathLoadedFrom) = 
          data.ResolveSourceFile(m, nm, pathLoadedFrom)
  
      // NOTE!! if mode=Speculative then this method must not report ANY warnings or errors through 'warning' or 'error'. Instead
      // it must return warnings and errors as data
      //
  
negative.code:                     // When building desktop then we need these additional dependencies
                      yield AssemblyReference(rangeStartup, "System.Numerics.dll", None)
                      yield AssemblyReference(rangeStartup, "System.dll", None)
                      let asm = AssemblyReference(rangeStartup, "netstandard.dll", None)
                      let found =
                          if tcConfig.useSimpleResolution then
                              match tcConfig.ResolveLibWithDirectories (CcuLoadFailureAction.ReturnNone, asm) with
                              | Some _ -> true
                              | None -> false
                          else
                              let resolutions = tcConfig.MsBuildResolve([|asm.Text, ""|], ResolveAssemblyReferenceMode.Speculative, rangeStartup, (*showMessages*)false)
                              resolutions.Length = 1
                      if found then yield asm
  
              if tcConfig.framework then
                  for s in defaultReferencesForScriptsAndOutOfProjectSources tcConfig.useFsiAuxLib assumeDotNetFramework tcConfig.useSdkRefs do
  