anchor.diff:                  findOnVSPathsThenSystemPath
               ]
               defaultArg (sources |> List.choose id |> List.tryHead) "MSBuild.exe"
  -    
  +
       if foundExe.Contains @"\BuildTools\" then
           traceFAKE "If you encounter msbuild errors make sure you have copied the required SDKs, see https://github.com/Microsoft/msbuild/issues/1697"
       elif foundExe.Contains @"\2017\" then
  
positive.code: exception BuildException of string*list<string>
    with
      override x.ToString() = x.Data0.ToString() + "\r\n" + (separated "\r\n" x.Data1)
  
  
  type MsBuildEntry = {
      Version: string;
  
negative.code:                 let vsVersionPaths =
                      defaultArg (EnvironmentHelper.environVarOrNone "VisualStudioVersion" |> Option.bind dict.TryFind) getAllKnownPaths
                      |> List.map ((@@) ProgramFilesX86)
  
                  ProcessHelper.tryFindFileInDirsThenPath vsVersionPaths "MSBuild.exe"
  
              let sources = [
                  msbuildEnvironVar |> Option.map (exactPathOrBinaryOnPath "MSBuild.exe")
                  msbuildEnvironVar |> Option.bind which
  