Open j-xella opened 6 months ago
cmd /d /c "
C:\Program Files (x86)
\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary/Build\vcvarsall.bat" -vcvars_ver=14.36.32532 amd64 2>&1 <NUL & echo cdARN4xjKueKScMy9C6H
One issue I see is the path - C:\Program Files (x86)
is where Visual Studio 2019 and older reside as they were 32-bit (x86) programs. Visual Studio 2022 is 64-bit (x64) and should be found in C:\Program Files
, that is unless the Visual Studio Installer was over-ridden to something other than the default when VS2022 was installed.
One issue I see is the path -
C:\Program Files (x86)
is where Visual Studio 2019 and older reside as they were 32-bit (x86) programs. Visual Studio 2022 is 64-bit (x64) and should be found inC:\Program Files
, that is unless the Visual Studio Installer was over-ridden to something other than the default when VS2022 was installed.
I have no control over the location of VS - I request it and it gets installed from a centralized package repository in our organisation. That being said, installation location should not be of importance, right? Otherwise, VS 2022 seems to work OK, even when being installed in a wrong folder.
This is an automated message. Per our repo policy, stale issues get closed if there has been no activity in the past 28 days. The issue will be automatically closed in 14 days. If you wish to keep this issue open, please add a new comment.
I'm not sure, but it seems the problem is the length limit of the command line arguments in Windows, it is equal to 8191 characters. Command prompt (Cmd. exe) command-line string limitation
It appears that due to the large number of paths in the user PATH
and the system PATH
environment variables, vcvarsall.bat
cannot execute successfully. You can try to remove unnecessary and duplicate paths in the user PATH
that are already in the system PATH
.
Also, there another length limitations: What is the maximum length of an environment variable?
The theoretical maximum length of an environment variable is around 32760 characters. All environment variables must live together in a single environment block, which itself has a limit of 32767 characters.
You can test it youself with the following bat file:
set VSCMD_DEBUG=0
set VCVARSALL_PATH=C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build
call "%VCVARSALL_PATH%\vcvarsall.bat" -vcvars_ver=14.33.31629 amd64
There must be two errors printed (about the length and about a command syntax).
Also, you can check the size of a generateddd_vsdevcmd17_preinit_env.log
file.
In my case it is 20.4 KB in size.
But actually the problem probably with a VSINSTALLDIR
environment variable, it must be like this:
C:\Program Files\Microsoft Visual Studio\2022\Community\
Check list:
Program Files (x86)
for older Visual Studio's2022
, 2019
, 2017
etc)Now I can successfully run vcvarsall.bat
manually, but vcpkg install
still shows the error:
error: while trying to get a Visual Studio environment, vcvarsall.bat returned 255
vcpkg
runs vcvarsall.bat -vcvars_ver=14.33.31629 amd64
as in the above bat file and there no exit /B 255
in the vcvarsall.bat
, so probably the error is somewhere else.
In my case, updating Visual Studio 2022 Community fixes the problem!
Also, I removed extra Build Tools for Visual Studio 2022 (2).
Operating system
WIN 10 Enterprise 22H2
Compiler
VS 2022
Steps to reproduce the behavior
Failure logs
Additional context
There were similar issues reported earlier:
17730
33298
However, this time it is with newer version of compilers, so maybe the problem is somewhere else?
The
--debug
invocation gives a command line that failed. When I replay that commandin a new command window, I don't see any errors, just a list of environment variables:
Versions:
2024-04-23-d6945642ee5c3076addd1a42c331bbf4cfc97457
7eb700c9688daed6d8bdcdc571ebe3eedea6a774