-
Notifications
You must be signed in to change notification settings - Fork 30k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
vcbuild.bat fails with Visual Studio 2017 #30118
Comments
With ...
C:\work\node\github\node>SET VSWHERE_ARGS=-latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath -version "[16.0,17.0)"
C:\work\node\github\node>for /F "usebackq tokens=*" %i in (`vswhere -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath -version "[16.0,17.0)"`) do (
endlocal
set "VCINSTALLDIR=%i\VC\"
set "VS150COMNTOOLS=%i\Common7\Tools\"
exit /B 0
)
C:\work\node\github\node>endlocal
C:\work\node\github\node>exit /B 1
C:\work\node\github\node>if "_C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\_" == "__" goto vs-set-2017
C:\work\node\github\node>if defined msi (
echo Looking for WiX installation for Visual Studio 2019...
if not exist "C:\Program Files (x86)\WiX Toolset v3.11\\SDK\VS2017" (
echo Failed to find WiX install for Visual Studio 2019
echo VS2019 support for WiX is only present starting at version 3.11
goto vs-set-2017
)
if not exist "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\\..\MSBuild\Microsoft\WiX" (
echo Failed to find the WiX Toolset Visual Studio 2019 Extension
goto vs-set-2017
)
)
C:\work\node\github\node>if "_15.0_" == "_16.0_" if "_x64_" == "_x64_" goto found_vs2019
C:\work\node\github\node>set "VSINSTALLDIR="
C:\work\node\github\node>set "VSCMD_START_DIR=C:\work\node\github\node"
C:\work\node\github\node>set vcvars_call="C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\\Auxiliary\Build\vcvarsall.bat" amd64
C:\work\node\github\node>echo calling: "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\\Auxiliary\Build\vcvarsall.bat" amd64
calling: "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\\Auxiliary\Build\vcvarsall.bat" amd64
C:\work\node\github\node>call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\\Auxiliary\Build\vcvarsall.bat" amd64
**********************************************************************
** Visual Studio 2017 Developer Command Prompt v15.9.3
** Copyright (c) 2017 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'
C:\work\node\github\node>echo Found MSVS version 15.0
Found MSVS version 15.0
C:\work\node\github\node>set GYP_MSVS_VERSION=2019
C:\work\node\github\node>set PLATFORM_TOOLSET=v142
... |
Fix in #30119. |
After further investigation this problem only manifests if building from a Visual Studio 2017 command prompt. The VS 2017 command prompts set Running from a normal command prompt (without any of the Visual Studio environment variables set) works as expected. #30119 fixes the Visual Studio command prompt case by clearing |
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 <[email protected]> Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: João Reis <[email protected]>
Suspect #30022. I don't have VS2019 installed.
The text was updated successfully, but these errors were encountered: