anchor.diff:                  | 0 | _ -> None
               f p h
   
  -        Environment.msbuild
  -        |> Promise.map (fun p ->
  -            logger.Debug("MSBuild found at %s", p)
  -            logger.Debug("MSBuild activated")
  -        )
  +        let envMsbuild =
  +            Environment.msbuild
  +            |> Promise.map (fun p ->
  +                logger.Info("MSBuild (.NET) found at %s", p)
  +                p)
  +
  +        let envDotnet = 
  +            Environment.dotnet
  +            |> Promise.map (fun p ->
  +                logger.Info("Dotnet cli (.NET Core) found at %s", p)
  +                p)
  +
  +        let reloadCfg = loadMSBuildHostCfg >> Promise.map setMSbuildHostType
  +
  +        [envMsbuild; envDotnet]
  +        |> Promise.all
  +        |> Promise.map Seq.toList
  +        |> Promise.bind (fun [_msbuild; _dotnet] -> reloadCfg ())
           |> ignore
  -        Environment.dotnet
  -        |> Promise.map (fun p ->
  -            logger.Debug("Dotnet cli (.NET Core) found at %s", p)
  -            logger.Debug("Dotnet cli (.NET Core) activated")
  -        )
  -        |> ignore
  +
  +        onDidChangeConfiguration(reloadCfg)
   
           registerCommand "MSBuild.buildCurrent" (fun _ -> buildCurrentProject "Build")
           registerCommand "MSBuild.rebuildCurrent" (fun _ -> buildCurrentProject "Rebuild")
  
positive.code:                     match host with
                      | MSbuildHost.MSBuildExe -> command
                      | MSbuildHost.DotnetCli -> sprintf "msbuild %s" command
                  logger.Debug("invoking msbuild from %s on %s for target %s", msbuildPath, safeproject, target)
                  let _ =
                      if autoshow then outputChannel.show()
                  return! Process.spawnWithNotification msbuildPath "" cmd outputChannel
  
negative.code:         | None ->
              promise {
                  logger.Debug "No MSBuild host selected yet"
                  let! hostFromConfig = loadMSBuildHostCfg ()
                  let! ho =
                      match hostFromConfig with
                      | Some h -> Some h |> Promise.lift
                      | None -> pickMSbuildHostType ()
  
                  ho |> Option.iter (Some >> setMSbuildHostType)
  
                  return ho
              }
  