コマンドラインでコンパイル(MSBuild)

VB2005に限った話ではないのですが、MSBuildというコンパイル用のツールが提供されています。

MSBuildは、ソリューションを指定したりMSBuild用のXMLファイル(プロジェクトファイル)を 指定することにより、コンパイル作業を行ってくれます。

おまけにMSBuildは、コンパイルする際に任意の処理を実行させるカスタムタスクと呼ばれる 機能もあります。

MSBuildでソリューションを指定してコンパイル

MSBuildで指定したソリューションをコンパイルするには、次のように指定します。

c:\> set Path=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;%PATH%

c:\> MSBUILD ソリューション.sln /p:Configuration=Release /t:Clean,Build

MSBuildのパスが通っていない場合は、事前に通す必要があります。

コマンドライン引数の「/p」は、プロパティを指定します。プロパティには、ビルド構成や出力先 などを設定します。

「/t」は、ターゲットを指定します。上記例の場合、Cleanした後にBuildを実行します。

MSBuildのコンパイル条件

MSBuildで使用するコンパイル条件は、*.*projと拡張子をつけたファイルに記述します。 VB2005などでは、*.vbprojというファイルが該当します。

この*.*projは、XMLで書かれており「MSBuildでソリューションを指定してコンパイル」で指定した コマンドライン引数にあたる、プロパティなどが記述されています。

*.*proj(プロジェクトファイル)を指定してコンパイルするには、次のように指定します。

c:\> MSBUILD hoge.vbproj /t:Clean,Build

MSBuildで使えるプロパティ・ターゲット

MSBuildで使用できるプロパティやターゲットをヘルプで調べたのですが、見つけられませんでした。 どんなプロパティやターゲットがあるのかは、次のファイルで確認できます。

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727ディレクトリ
Microsoft.Build.Commontypes.xsd
Microsoft.Common.targets