CI/CD를 동작시킬 때 MSBuild를 사용하는 경우가 있을 것이다.
이 때 개발환경과 CI/CD환경이 다를 것이고 경로도 다를 것이다.
그래서 Build.bat 파일과 같이 bat파일로 동작시키는 경우가 있다.
MSBuild의 경로 가져오기
:-----------------------------------------------------------------------------------------------------------------------------
REM Find Visual Studio 2022 installation
set MSBUILD_PATH=
REM Try to find Visual Studio installation using vswhere
set "VSWHERE=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"
for /f "usebackq tokens=*" %%i in (`"%VSWHERE%" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do (
set "MSBUILD_PATH=%%i\MSBuild\Current\Bin\MSBuild.exe"
goto :found_msbuild
)
:found_msbuild
if "%MSBUILD_PATH%"=="" (
echo Error: MSBuild.exe not found.
echo Please install Visual Studio 2022 and try again.
pause
exit /B 1
)
:-----------------------------------------------------------------------------------------------------------------------------
:-----------------------------------------------------------------------------------------------------------------------------
echo Using MSBuild at: %MSBUILD_PATH%
REM "%MSBUILD_PATH%" Engine.sln -p:Configuration="Debug" -p:Platform=Win32
REM "%MSBUILD_PATH%" Engine.sln -p:Configuration="Release" -p:Platform=Win32
"%MSBUILD_PATH%" Engine.sln -p:Configuration="Debug" -p:Platform=x64
REM "%MSBUILD_PATH%" Engine.sln -p:Configuration="Release" -p:Platform=x64
:-----------------------------------------------------------------------------------------------------------------------------
VsDevCmd의 경로 가져오기
나의 경우에는 Visual Studio 2022를 사용하고 있기 때문에 VS2022_PATH라고 했을 뿐이다.
이렇게하면 설치된 최신 버전의 Visual Studio 의 VsDevCmd.bat 경로를 가져올 것이다.
:-----------------------------------------------------------------------------------------------------------------------------
echo.
echo [Execute VsDevCmd.bat]
REM Find Visual Studio 2022 installation
set VS2022_PATH=
REM Try to find Visual Studio installation using vswhere
set "VSWHERE=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"
for /f "usebackq tokens=*" %%i in (`"%VSWHERE%" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do (
set "VS2022_PATH=%%i\Common7\Tools\VsDevCmd.bat"
goto :found_vs
)
:found_vs
if "%VS2022_PATH%"=="" (
echo Error: Visual Studio 2022 not found.
echo Please install Visual Studio 2022 and try again.
pause
exit /B 1
)
echo Using Visual Studio 2022 at: %VS2022_PATH%
call "%VS2022_PATH%"
:-----------------------------------------------------------------------------------------------------------------------------