Today I was trying to do some random C++ programming on my own machine. Having done a snippet of code in Visual Studio Code, I fired up VS2015 x64 Native Tools Command Prompt, only to be told to “make sure either Visual Studio or C++ Build SKU is installed”.
Actually, I have no reason why I fired up the prompt for 2015 instead of 2017. Perhaps it was because that was the first result of searching “command” in Cortana.
- You install Visual Studio 2017 Community on Windows 10.
- You open VS2015 x64 Native Tools Command Prompt from Start or Cortana.
The script fails, telling you:
Please make sure either Visual Studio or C++ Build SKU is installed.
The variables are initialised and the current directory is C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC.
Open C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat, the first few lines of which are:
@echo off REM VC command prompt depends on env. variable installed during VS. This causes VC command prompt to break for C++ Build SKU. REM So if VS is not installed and C++ Build SKU is installed, set appropriate environment for C++ Build SKU by calling into it's batch file. REM C++ Build SKU supports only desktop development environment. if exist "%~dp0..\common7\IDE\devenv.exe" goto setup_VS if not exist "%~dp0..\common7\IDE\wdexpress.exe" goto setup_buildsku
Insert the following line between the two
if exist "%~dp0..\..\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv.exe" goto setup_VS
Then save the file. You might have to clear read-only property of the file and need administrator priviledge.
Note that some discussions on the Internet (for example, this) suggest that the second
if be removed. It works around the issue but is not inherently logical. Removing that
if lets the execution fall directly into
setup_VS label and works only because we’re lucky. The fix proposed in this entry, however, detects the existence of Visual Studio 2017 and branches accordingly.