MSBuild

MSBuildは、マイクロソフトのビルド環境であり、通常Visual Studioと一緒に使われている。Windows Vista以降のオペレーティングシステムには、バンドルされている.NET Frameworkに対応するバージョンのMSBuildが標準的にインストールされているOSに標準付属のMSBuildツールでプロジェクトをビルドするには？：.NET TIPS - ＠IT。

MSBuildバージョン2.0は.NET Framework 2.0の一部であり、Visual Studio 2005とともに動作する。バージョン3.5は.NET 3.5（およびVisual Studio 2008）にバンドルされており、.NETプロジェクトのターゲットバージョンとして2.0、3.0、3.5をサポートしている。これは「マルチターゲット」と呼ばれる。

Visual StudioのプロジェクトおよびソリューションはMSBuildに基づいており、コンパイラやリンカ、SDKなどのツールがセットアップされていれば、Visual StudioのIDE無しでもビルドすることができる。MSBuild自体は無償で利用可能である。

Visual C++はバージョン2008までVCBuildと呼ばれる独自のビルドツールを利用していたが、バージョン2010以降はVisual C#などと同様にMSBuildを利用するようになったVCBuild vs. MSBuild | Microsoft Learn。

MSBuildのプロジェクトファイルはApache Antやに似たXMLの文法を持っている。プロジェクトファイルの文法は明確に定義されたXMLスキーマに基づいているが、基本的な構造や操作はUnixの伝統的なmakeユーティリティと同等である。すなわち、ユーザーはビルドに使われるもの（通例ソースファイル）と生成されるもの（通例スタティックライブラリ、DLL、あるいはアプリケーションの実行ファイル）を指定するが、ユーティリティはやるべき事とその順序を自分で判断する。

NMAKE
MSBuildはnmakeツールの機能的な後継である。Visual Studioには、以前のバージョンのVisual Studioで作成したプロジェクトやワークスペースを、VCBuildやMSBuildのプロジェクトやソリューションに変換する機能が用意されている。例えばVisual Studio 6におけるdsp/dswファイルを、Visual Studio .NET 2002/.NET 2003/2005/2008で開くと、それぞれvcproj/slnファイルに変換される。Visual Studio 2010以降ではvcxproj/slnファイルに変換される。

ターゲット(Target)
MSBuildではプロジェクトファイルに記述した複数のターゲットのうち、任意のターゲットを指定して実行することができる。サブシーケンスとして依存したターゲットはリクエストされたターゲット自身よりも前に実行される。各々のターゲットは自分自身を完了させるのに実行に必要なタスクをそれ自体で保持している。ターゲットは通常ひとつあるいはファイル／ディレクトリのセットに対してひとつのアクションを実行する。

タスク(Task)
タスクはターゲットを完了させるために実行されるコマンドである。タスクは通常.NETアセンブリでクラスとして実装され、Taskクラスを継承するかもしくはITaskインターフェイスを実装したものである。多数の基本的なタスクが.NET Frameworkの一部として搭載されている。またコミュニティーが開発している多くのタスクも自由に利用可能である。

プロパティおよびアイテム
付け加えてMSBuildはプロパティ(Property)およびアイテム(Item)を提供しており、Makefileのマクロと概念的に等価である。プロパティは静的な値を指定するのに対し、アイテムは通常タスクの実行対象となるファイルやフォルダのセットを定義するために使用される。ワイルドカードのサポートによりファイルをアイテムとして指定するのは容易である。

Team Foundationによるビルド
Visual Studio Team Systemも実際のTeam Buildsを達成するためにMSBuildに依存しており、Visual Studio Team Foundation Serverとして提供されている。このビルド処理はサーバー自身で実行されることはほとんどなく、必要なソフトがインストールされたリモートのビルドサーバーで実行される。(例: Team Foundation Server (Build))

参照

 Inside the Microsoft Build Engine :Using MSBuild and Team Foundation Build (Microsoft Press)


 Popular MSBuild Blog
 Open Source MSBuild Community Tasks Project
 Inside MSBuild MSDN Article
 WiX Tricks-Automate Releases With MSBuild And Windows Installer XML
 MSBuild : Best Practices For Creating Reliable Builds, Part 1 (MSDN Magazine)
 MSBuild : Best Practices For Creating Reliable Builds, Part 2 (MSDN Magazine)
 MSBuild Sidekick - GUI editor and debugger for MSBuild scripts
 MSBuild Wiki
 MSBuild Command Line Reference - parameters & switches

 脚注 

 関連項目 
 Microsoft Visual Studio
 ビルド (ソフトウェア)

外部リンク
MSBuild - MSBuild | Microsoft Learn

Category:ビルド自動化
Category:Microsoft Visual Studio
Category:マイクロソフトのフリーソフト