anchor.diff:  
   :BuildFailed
   echo Build failed with ERRORLEVEL %ERRORLEVEL%
  -call :TerminateCompilerServer
  +call :TerminateBuildProcesses
   exit /b 1
   
  -:TerminateCompilerServer
  +:TerminateBuildProcesses
   @REM Kill any instances VBCSCompiler.exe to release locked files, ignoring stderr if process is not open
   @REM This prevents future CI runs from failing while trying to delete those files.
  +@REM Kill any instances of msbuild.exe to ensure that we never reuse nodes (e.g. if a non-roslyn CI run
  +@REM left some floating around).
   
   taskkill /F /IM vbcscompiler.exe 2> nul
  +taskkill /F /IM msbuild.exe 2> nul
  
positive.code: REM Clean the previous build
  msbuild %MSBuildAdditionalCommandLineArgs% /t:Clean build/Toolset.sln /p:Configuration=%BuildConfiguration%  /fileloggerparameters:LogFile=%RoslynRoot%Binaries\BootstrapClean.log || goto :BuildFailed
  
  call :TerminateCompilerServer
  
  if defined Perf (
    set Target=Build
  
negative.code: )
  
  REM Set the build version only so the assembly version is set to the semantic version,
  REM which allows analyzers to load because the compiler has binding redirects to the
  REM semantic version
  msbuild %MSBuildAdditionalCommandLineArgs% /p:BuildVersion=0.0.0.0 %RoslynRoot%build/Toolset.sln /p:NuGetRestorePackages=false /p:Configuration=%BuildConfiguration% /fileloggerparameters:LogFile=%RoslynRoot%Binaries\Bootstrap.log || goto :BuildFailed
  
  