MSBuild

MSBuildは、マイクロソフトのビルド環境であり、通常Visual Studioと一緒に使われている。Windows Vista以降のオペレーティングシステムには、バンドルされている.NET Frameworkに対応するバージョンのMSBuildが標準的にインストールされている。
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を利用するようになった。
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))