anchor.diff:  @echo            with /release. May not be combined with /test32 or /test64.
   @echo.
   @goto :eof
  +
  +:BuildFailed
  +echo Build failed with ERRORLEVEL %ERRORLEVEL%
  +call :TerminateCompilerServer
  +exit /b 1
  +
  +:TerminateCompilerServer
  +@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 hile trying to delete those files.
  +
  +taskkill /F /IM vbcscompiler.exe 2> nul
positive.code: 
  if defined Perf (
    if DEFINED JenkinsCIPerfCredentials (
      powershell .\ciperf.ps1 -BinariesDirectory %RoslynRoot%Binaries\%BuildConfiguration% %JenkinsCIPerfCredentials%
    ) else (
      powershell .\ciperf.ps1 -BinariesDirectory %RoslynRoot%Binaries\%BuildConfiguration% -StorageAccountName roslynscratch -StorageContainer drops -SCRAMScope 'Roslyn\Azure'
    )
  )
  
  REM It is okay and expected for taskkill to fail (it's a cleanup routine).  Ensure
  REM caller sees successful exit.
  exit /b 0
  
  :Usage
  
negative.code:   )
  )
  
  call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\VsDevCmd.bat" || goto :BuildFailed
  
  REM Restore the NuGet packages 
  if "%BuildRestore%" == "true" (
      call "%RoslynRoot%\Restore.cmd" || goto :BuildFailed
  ) else (
      powershell -noprofile -executionPolicy RemoteSigned -command "%RoslynRoot%\build\scripts\restore.ps1 %NugetZipUrl%" || goto :BuildFailed
  )
  
  REM Set the build version only so the assembly version is set to the semantic version,
  REM which allows analyzers to laod 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% || goto :BuildFailed
  
  if not exist "%RoslynRoot%Binaries\Bootstrap" mkdir "%RoslynRoot%Binaries\Bootstrap" || goto :BuildFailed
  move "Binaries\%BuildConfiguration%\*" "%RoslynRoot%Binaries\Bootstrap" || goto :BuildFailed
  copy "build\scripts\*" "%RoslynRoot%Binaries\Bootstrap" || goto :BuildFailed
  
  REM Clean the previous build
  msbuild %MSBuildAdditionalCommandLineArgs% /t:Clean build/Toolset.sln /p:Configuration=%BuildConfiguration%  || goto :BuildFailed
  
  call :TerminateCompilerServer
  
  if defined Perf (
    set Target=Build
  