I have an enlistment in a source tree which includes a batch file to drive builds. The batch file calls another batch file which calls msbuild.
As far as I know, both build environments are identical,but the build is failing in the newer machine (which has never completed a build).
In looking through the logs, I see that on one machine I am building DynDebug|x64, and the other DynDebug|Win32.
How can this be happening? I have lived a good life.
The first batch file is a' doin' this:
CALL buildbase.bat ..\vs2015\libsodium.sln 14
The second one (buildbase.bat) is a' doin' this:
SET solution=%1SET version=%2
SET log=build_%version%.log
SET tools=Microsoft Visual Studio %version%.0\VC\vcvarsall.bat
SET environment="%programfiles(x86)%\%tools%"
IF NOT EXIST %environment% SET environment="%programfiles%\%tools%"
IF NOT EXIST %environment% GOTO no_tools
ECHO Building: %solution%
CALL %environment% x86 > nul
ECHO Platform=x86
ECHO Configuration=DynDebug
msbuild /m /v:n /p:Configuration=DynDebug /p:Platform=Win32 %solution% > %log%
IF errorlevel 1 GOTO error
ECHO Configuration=DynRelease
msbuild /m /v:n /p:Configuration=DynRelease /p:Platform=Win32 %solution% >> %log%
IF errorlevel 1 GOTO error
ECHO Configuration=LtcgDebug
msbuild /m /v:n /p:Configuration=LtcgDebug /p:Platform=Win32 %solution% >> %log%
IF errorlevel 1 GOTO error
ECHO Configuration=LtcgRelease
msbuild /m /v:n /p:Configuration=LtcgRelease /p:Platform=Win32 %solution% >> %log%
IF errorlevel 1 GOTO error
So I get why I am getting the DynDebug|Win32 (which is breaking).
I don't get why I am seeing DynDebug|x64, and I really, really don't get why they are different. AFAICT the machine environments areidentical.
There is a hidden variable - a rat in the woodpile.
Where is that rat, and what does he look like?
Beetle