diff --git a/scripts/build-arch.bat b/scripts/build-arch.bat index d2719cce..d3a433bd 100644 --- a/scripts/build-arch.bat +++ b/scripts/build-arch.bat @@ -134,7 +134,8 @@ if /I "%VC_ARCH%" NEQ "%PROCESSOR_ARCHITECTURE%" ( ) rem Find Visual Studio and run vcvarsall.bat -set VSWHERE="%SOURCE_ROOT%\scripts\vswhere.exe" +call "%SOURCE_ROOT%\scripts\find-vswhere.bat" +if !ERRORLEVEL! NEQ 0 goto Error for /f "usebackq delims=" %%i in (`%VSWHERE% -latest -property installationPath`) do ( call "%%i\VC\Auxiliary\Build\vcvarsall.bat" %VC_ARCH% ) @@ -142,6 +143,7 @@ if !ERRORLEVEL! NEQ 0 goto Error rem Find VC redistributable DLLs for /f "usebackq delims=" %%i in (`%VSWHERE% -latest -find VC\Redist\MSVC\*\%ARCH%\Microsoft.VC*.CRT`) do set VC_REDIST_DLL_PATH=%%i +if !ERRORLEVEL! NEQ 0 goto Error echo Cleaning output directories rmdir /s /q %DEPLOY_FOLDER% diff --git a/scripts/find-vswhere.bat b/scripts/find-vswhere.bat new file mode 100644 index 00000000..753d47ef --- /dev/null +++ b/scripts/find-vswhere.bat @@ -0,0 +1,15 @@ +@echo off + +rem Search the PATH first, then well-known paths +where /q vswhere.exe +if %ERRORLEVEL% EQU 0 ( + set VSWHERE=vswhere.exe +) else if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" ( + set VSWHERE="%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" +) else if exist "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" ( + set VSWHERE="%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" +) else ( + exit /b 1 +) + +exit /b 0 \ No newline at end of file diff --git a/scripts/generate-bundle.bat b/scripts/generate-bundle.bat index ec32c1cd..56975727 100644 --- a/scripts/generate-bundle.bat +++ b/scripts/generate-bundle.bat @@ -65,7 +65,8 @@ mkdir %BUILD_FOLDER% mkdir %INSTALLER_FOLDER% rem Find Visual Studio and run vcvarsall.bat -set VSWHERE="%SOURCE_ROOT%\scripts\vswhere.exe" +call "%SOURCE_ROOT%\scripts\find-vswhere.bat" +if !ERRORLEVEL! NEQ 0 goto Error for /f "usebackq delims=" %%i in (`%VSWHERE% -latest -property installationPath`) do ( call "%%i\VC\Auxiliary\Build\vcvarsall.bat" x86 ) diff --git a/scripts/vswhere.exe b/scripts/vswhere.exe deleted file mode 100644 index 26038267..00000000 Binary files a/scripts/vswhere.exe and /dev/null differ