anchor.diff:      |> Seq.distinctBy fst 
       |> Map.ofSeq
   
  -let private getAssembly (asmName:AssemblyName) = 
  +let private getAssembly (asmName:AssemblyName) reflectionOnly = 
       let folder = 
           let version = 
               if asmName.Version = null // version is null when trying to load the log4net assembly when running tests inside NUnit
  
positive.code: 
      if not initialized then
          initialized <- true
          AppDomain.CurrentDomain.add_ReflectionOnlyAssemblyResolve(fun _ args -> getAssembly (AssemblyName args.Name))
      
      let runtimeAssembly = Assembly.ReflectionOnlyLoadFrom cfg.RuntimeAssembly
  
      let runtimeAsmsPairs = 
          runtimeAssembly.GetReferencedAssemblies()
          |> Seq.filter (fun asmName -> asmName.Name <> "mscorlib")
          |> Seq.choose (fun asmName -> 
              designTimeAssemblies.TryFind asmName.Name
              |> Option.bind (fun designTimeAsm ->
                  let targetAsm = getAssembly asmName
                  if targetAsm <> null then Some (designTimeAsm, targetAsm) else None))
          |> Seq.toList
  
      let asmMappings = (Assembly.GetExecutingAssembly(), runtimeAssembly)::runtimeAsmsPairs
  
      runtimeAssembly, AssemblyReplacer.create asmMappings
  
negative.code:         | "FSharp.Core", "3.3.1.0" -> fsharp31Portable7AssembliesPath
          | _, "2.0.5.0" -> portable47AssembliesPath
          | _, _ -> null
      if folder = null then 
          if reflectionOnly then Assembly.ReflectionOnlyLoad asmName.FullName
          else null
      else
          let assemblyPath = folder ++ (asmName.Name + ".dll")
          if File.Exists assemblyPath then
              if reflectionOnly then Assembly.ReflectionOnlyLoadFrom assemblyPath
              else Assembly.LoadFrom assemblyPath 
          else null
  
  let mutable private initialized = false    
  