anchor.diff:          ProcessUtils.findPath fsiPaths "fsi.exe"
   
   /// The path to the MSBuild tool executable.
  -let pathToMSBuildExe = MSBuild.msBuildExe
  +let pathToMSBuildExe = MSBuildParams.Create().ToolPath
   
   /// The path to the git command line executable.
   let pathtoGitExe = Git.CommandHelper.gitPath
  
positive.code:     runTests "tests/FSharp.Data.GraphQL.Tests/FSharp.Data.GraphQL.Tests.fsproj"
      try
          startTestServer ()
          // The "dotnet run" command spawns additional dotnet processes.
          // If we don't kill them all, AppVeyor CI will hang waiting for them to finish.
          runTests "tests/FSharp.Data.GraphQL.IntegrationTests/FSharp.Data.GraphQL.IntegrationTests.fsproj"
      finally Process.killAllByName "dotnet")
  
  // --------------------------------------------------------------------------------------
  // Generate the documentation
  
negative.code:             then waiter.Set() |> ignore
          let errHandler (msg : string) =
              failwithf "Error while starting Giraffe server. %s" msg
          let serverProjectDir = "samples/FSharp.Data.GraphQL.Samples.GiraffeServer"
          let serverProject = serverProjectDir </> "FSharp.Data.GraphQL.Samples.GiraffeServer.fsproj"
          restore serverProject
          build serverProject
          CreateProcess.fromRawCommand dotNetCliExe [| "run"; "-c"; "Release"; "--no-build" |]
          |> CreateProcess.withWorkingDirectory serverProjectDir
          |> CreateProcess.redirectOutput
          |> CreateProcess.withOutputEventsNotNull stdHandler errHandler
          |> Proc.start
  