Visual Studio 2005 のコマンドでビルド
製品開発において、Windowsプラットフォームのデイリービルドは、非常に面倒です。なぜならば、Visual Studioで開発している場合においては、C言語のコンパイルが Unix や Linux のようにシェルスクリプトに make コマンドを記述してデーモンで実行できないからです。
しかし、よく調べてみると Visual Studio にもコマンドでビルドできることがわかりました。これは、devenv.exe を用いて行えます。この devenv.exe は、"
利用方法は、下記のようになります。
この場合は、CVSのユーザーをRSA認証できるように(パスフレーズ入力なし)設定しなければなりません。
ソリューションでビルド
devenv.exe [solution file] [build type] [build target]
例: devenv.exe Sample.sln /Build "Release|Win32"
プロジェクト単位でビルド
devenv.exe [solution file] [build type] [build target] /Project [project name]
例: devenv.exe Sample.sln /Build "Release|Win32" /Project sample_project
ログに出力
devenv.exe [solution file] [build type] [build target] /Project [project name] /Out [output]
例: devenv.exe Sample.sln /Build "Release|Win32" /Project sample_project /Out Sample.log
これをBATファイルに記述してWindowsのタスクに登録するれば日、週などの単位でビルドを繰り返すことができます。
@echo off SET CVSROOT=:ext:account@domain.com:/home/user/cvs SET DEVENV=[visual Studioのインストールフォルダ]\Common7\IDE\ SET _SRC=[source project] SET _DRIVE=%~d0 SET _PATH=%~p0 SET _CURRENT=%_DRIVE%%_PATH% SET _DATE=-%date:~-10,4%%date:~-5,2%%date:~-2,2% SET _LOG=%_CURRENT%%_DATE%.log Rem: ソースコードのチェックアウトもしくはアップデート IF NOT EXIST "%_CURRENT%%_SRC%\." GOTO CHECKOUT IF EXIST "%_CURRENT%%_SRC%\." GOTO UPDATE :CHECKOUT echo ソースをチェックアウト START /WAIT cvs checkout %_SRC%>NUL :UPDATE echo ソースのアップデート START /WAIT cvs update %_SRC%>NUL %DEVENV%\devenv.exe Sample.sln /Clean "Release|Win32" /Out %_LOG% %DEVENV%\devenv.exe Sample.sln /Build "Release|Win32" /Out %_LOG% FIND "1 失敗" %_LOG% > NUL IF %ERRORLEVEL% == 0 ( echo ビルドに失敗している可能性があります。 FIND /N "1 失敗" %_LOG% >> ERROR%_DATE%.log )