MSbuildコマンドをバッチファイルで実行し、ログを出力する(Visual Studio2019 Community)

JenkinsでMSBuildを実行するためにバッチファイルを作成したのでメモしておく。

引数には、「ソリューション構成」を設定。

エラーログを日付を入れたファイルで出力させる。

@echo off
rem ログファイルに日付を入れる
set dt1=%date:~0,4%%date:~5,2%%date:~8,2%
set tm1=%time:~0,2%%time:~3,2%%time:~6,2%
set fname1=%dt1%_%tm1%

rem set WORK_DIR=%~dp0
set WORK_DIR=F:\svn\trunk
pushd %WORK_DIR%

rem ログ出力先
set OUTPUTS=%WORK_DIR%\..\publish

rem ソリューション構成の設定(引数設定)
set CONFIG=%~1
if "%CONFIG%"=="" set CONFIG=Release
If not exist %OUTPUTS%\%CONFIG% mkdir -p %OUTPUTS%\%CONFIG%

SET MSBuildPath=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\
SET BuildPath=F:\svn\trunk

"%MSBuildPath%\MSBuild.exe" "%BuildPath%\WebMVC.csproj" ^
  /t:WebPublish /p:Configuration=%CONFIG% ^
  /p:WebPublishMethod=FileSystem ^
  /p:publishUrl=%OUTPUTS%\%CONFIG% ^
  -fl1 -fl2 -fl3 ^
  -flp2:logfile=%OUTPUTS%\JustErrors-%dt1%_%tm1%.log;errorsonly ^
  -flp3:logfile=%OUTPUTS%\JustWarnings-%dt1%_%tm1%.log;warningsonly

if %errorlevel% neq 0 (
  echo Error!!
  popd
  exit /b %errorlevel%
) else (
  popd
  echo Success
)

 

(参考)

%~dp0について詳細説明がある。

MS公式ページ。ビルドログの出力方法が記載

 

コメント

このブログの人気の投稿

ソリューション構成ごとにconfigファイルを作成する

C++の古いプロジェクトのビルドでerror MIDL2311 : statements outside library block are illegal in mktyplib compatability mode

web.config debug/releaseの内容を変換構文を使って切り替える