Skip to content
Browse files

build: fix detection of Visual Studio 2017

When run in a Visual Studio 2017 command prompt the `VCINSTALLDIR`
environment variable will be already set and is not cleared by the
`tools/msvs/vswhere_usability_wrapper.cmd` utility when it fails to
find Visual Studio 2019. This causes `vcbuild.bat` to incorrectly
assume Visual Studio 2019 and generate an incompatible configuration.

Clearing the value of `VCINSTALLDIR` before calling the utility fixes
the detection logic.

PR-URL: #30119
Fixes: #30118
Refs: #30022
Reviewed-By: James M Snell <>
Reviewed-By: Michaël Zasso <>
Reviewed-By: João Reis <>
  • Loading branch information...
richardlau committed Oct 25, 2019
1 parent ed2c3ca commit 1f2fdc9538f2ee9d9fad68137798c49113e96274
Showing with 4 additions and 0 deletions.
  1. +4 −0 vcbuild.bat
@@ -240,6 +240,10 @@ if %target_arch%==x86 if %msvs_host_arch%==x86 set vcvarsall_arg=x86
if defined target_env if "%target_env%" NEQ "vs2019" goto vs-set-2017
echo Looking for Visual Studio 2019
@rem VCINSTALLDIR may be set if run from a VS Command Prompt and needs to be
@rem cleared first as vswhere_usability_wrapper.cmd doesn't when it fails to
@rem detect the version searched for
call tools\msvs\vswhere_usability_wrapper.cmd "[16.0,17.0)"
if "_%VCINSTALLDIR%_" == "__" goto vs-set-2017
if defined msi (

0 comments on commit 1f2fdc9

Please sign in to comment.
You can’t perform that action at this time.