[ Home on 246net ] [ C# Top ]

.NETプログラムをビルドするMSBuild

.NET Frameworkランタイムには、.NETプログラムをビルドするためのツールであるMSBuildが含まれています。これは、XMLで記述したプロジェクト設定ファイルに基づき、アセンブリをビルドしたり、実行するといった作業を行います。いわゆるmakeツールに相当します。

Visual Studioで作成したプロジェクトファイルも、このMSBuildで実行可能なXMLファイルとなっています。したがって、Visual Studioで開発したプログラムを、コマンドラインでビルドする場合、そのままこのMSBuildコマンドでビルドすることができます。

簡単な構成と使い方

まずは、HelloWorldプログラムをビルドする簡単なプロジェクトファイルを作成し、実行します。

HelloWorld用プロジェクトファイルの記述

HelloWorld.csを1つビルドしexeを作成する最低限のプロジェクトファイルを記述します。

Hello.proj

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <ItemGroup>
    <CSFile Include="HelloWorld.cs"/>
  </ItemGroup>

  <Target Name="Build">
    <CSC Sources="@(CSFile)"/>
  </Target>

</Project>

ファイルはUTF-8でエンコーディングします。
コンパイル対象ソースファイル名をItemGroupの子要素CSFileで指定しています。
コンパイルはTargetの子要素CSCで指定します。今回はコンパイル対象ソースファイル名だけ指定し、それ以外はデフォルトに任せています。

ビルドの実行は

C:\work\hello> MSBuild Hello.proj
Microsoft (R) Build Engine Version 4.0.30319.1
[Microsoft .NET Framework, Version 4.0.30319.1]
Copyright (C) Microsoft Corporation 2007. All rights reserved.

2010/06/12 21:49:54 にビルドを開始しました。
ノード 1 上のプロジェクト "C:\work\hello\Hello.proj" (既定のターゲット)。
Build:
  C:\Windows\Microsoft.NET\Framework\v2.0.50727\Csc.exe /out:HelloWorld.exe Hel
  loWorld.cs
プロジェクト "C:\work\hello\Hello.proj"
(既定のターゲット) のビルドが完了しました。


ビルドに成功しました。
    0 個の警告
    0 エラー

経過時間 00:00:00.32
C:\work\hello> 

参考情報

MSBuildの使い方については、いくつか紹介記事等があります。