mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2026-06-15 00:56:07 -05:00
Windows: discover newer SDK MSI tools
Enhance build_msi_x64.bat to enumerate installed Windows Kits 10 SDK bin directories matching 10.* and select the newest x86 path that contains the MSI tools. Keep VC_DIR_PLATFORMSDK as the first override and preserve the existing fixed SDK fallback paths for older installations. Require MsiInfo.exe during discovery as well as msitran.exe and msidb.exe so the selected SDK path supports the final MSI metadata step.
This commit is contained in:
@@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
@set SEARCH_WIX_PATH=C:\Program Files (x86)\WiX Toolset v3.14\bin
|
@set SEARCH_WIX_PATH=C:\Program Files (x86)\WiX Toolset v3.14\bin
|
||||||
|
|
||||||
|
@set SEARCH_WINDOWS_KITS_10_BIN=C:\Program Files (x86)\Windows Kits\10\bin
|
||||||
@set SEARCH_VC_DIR_PLATFORMSDK_1=C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86
|
@set SEARCH_VC_DIR_PLATFORMSDK_1=C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86
|
||||||
@set SEARCH_VC_DIR_PLATFORMSDK_2=C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86
|
@set SEARCH_VC_DIR_PLATFORMSDK_2=C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86
|
||||||
@set SEARCH_VC_DIR_PLATFORMSDK_3=C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x86
|
@set SEARCH_VC_DIR_PLATFORMSDK_3=C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x86
|
||||||
@@ -19,12 +20,12 @@ set MSI_BUILDPATH=%~dp0
|
|||||||
cd %MSI_BUILDPATH%
|
cd %MSI_BUILDPATH%
|
||||||
|
|
||||||
::------------------------------------
|
::------------------------------------
|
||||||
:: Look for msitran.exe and msidb.exe
|
:: Look for MSI SDK tools
|
||||||
::------------------------------------
|
::------------------------------------
|
||||||
|
|
||||||
@echo [INFO] Define default value for VC_DIR_PLATFORMSDK if not defined yet
|
@echo [INFO] Define default value for VC_DIR_PLATFORMSDK if not defined yet
|
||||||
@echo [INFO] Input VC_DIR_PLATFORMSDK=%VC_DIR_PLATFORMSDK%
|
@echo [INFO] Input VC_DIR_PLATFORMSDK=%VC_DIR_PLATFORMSDK%
|
||||||
@set FILE_TO_FIND="msitran.exe" "msidb.exe"
|
@set FILE_TO_FIND="msitran.exe" "msidb.exe" "MsiInfo.exe"
|
||||||
@echo [INFO] Looking for files: %FILE_TO_FIND%
|
@echo [INFO] Looking for files: %FILE_TO_FIND%
|
||||||
|
|
||||||
@set FILE_NOT_FOUND=
|
@set FILE_NOT_FOUND=
|
||||||
@@ -32,6 +33,12 @@ cd %MSI_BUILDPATH%
|
|||||||
@if "%FILE_NOT_FOUND%"=="" goto found_mssdk
|
@if "%FILE_NOT_FOUND%"=="" goto found_mssdk
|
||||||
@echo Not found in "%VC_DIR_PLATFORMSDK%"
|
@echo Not found in "%VC_DIR_PLATFORMSDK%"
|
||||||
|
|
||||||
|
@echo [INFO] Looking for Windows 10 SDK MSI tools under "%SEARCH_WINDOWS_KITS_10_BIN%"
|
||||||
|
@for /f "delims=" %%d in ('dir /b /ad /o-n "%SEARCH_WINDOWS_KITS_10_BIN%\10.*" 2^>nul') do (
|
||||||
|
@call :check_mssdk_path "%SEARCH_WINDOWS_KITS_10_BIN%\%%d\x86"
|
||||||
|
@if not errorlevel 1 goto found_mssdk
|
||||||
|
)
|
||||||
|
|
||||||
@set VC_DIR_PLATFORMSDK=%SEARCH_VC_DIR_PLATFORMSDK_1%
|
@set VC_DIR_PLATFORMSDK=%SEARCH_VC_DIR_PLATFORMSDK_1%
|
||||||
@set FILE_NOT_FOUND=
|
@set FILE_NOT_FOUND=
|
||||||
@for %%i in (%FILE_TO_FIND%) do @if not exist "%VC_DIR_PLATFORMSDK%\%%~i" set FILE_NOT_FOUND=%%~i
|
@for %%i in (%FILE_TO_FIND%) do @if not exist "%VC_DIR_PLATFORMSDK%\%%~i" set FILE_NOT_FOUND=%%~i
|
||||||
@@ -51,7 +58,7 @@ cd %MSI_BUILDPATH%
|
|||||||
@echo Not found in "%VC_DIR_PLATFORMSDK%"
|
@echo Not found in "%VC_DIR_PLATFORMSDK%"
|
||||||
|
|
||||||
@rem paths for Windows 8 SDK are slightly different
|
@rem paths for Windows 8 SDK are slightly different
|
||||||
@set FILE_TO_FIND="msitran.exe" "msidb.exe"
|
@set FILE_TO_FIND="msitran.exe" "msidb.exe" "MsiInfo.exe"
|
||||||
|
|
||||||
@set VC_DIR_PLATFORMSDK=%SEARCH_VC_DIR_PLATFORMSDK_4%
|
@set VC_DIR_PLATFORMSDK=%SEARCH_VC_DIR_PLATFORMSDK_4%
|
||||||
@set FILE_NOT_FOUND=
|
@set FILE_NOT_FOUND=
|
||||||
@@ -178,3 +185,12 @@ goto END
|
|||||||
@echo [INFO] Done creating multi-lang msi installers
|
@echo [INFO] Done creating multi-lang msi installers
|
||||||
:END
|
:END
|
||||||
@echo end
|
@echo end
|
||||||
|
@exit /B 0
|
||||||
|
|
||||||
|
:check_mssdk_path
|
||||||
|
@set VC_DIR_PLATFORMSDK=%~1
|
||||||
|
@set FILE_NOT_FOUND=
|
||||||
|
@for %%i in (%FILE_TO_FIND%) do @if not exist "%VC_DIR_PLATFORMSDK%\%%~i" set FILE_NOT_FOUND=%%~i
|
||||||
|
@if "%FILE_NOT_FOUND%"=="" exit /B 0
|
||||||
|
@echo Not found in "%VC_DIR_PLATFORMSDK%"
|
||||||
|
@exit /B 1
|
||||||
|
|||||||
Reference in New Issue
Block a user