MSBuild は、マイクロソフト のビルド 環境であり、通常Visual Studio と一緒に使われている。Windows Vista 以降のオペレーティングシステム には、バンドルされている.NET Framework に対応するバージョンのMSBuildが標準的にインストールされている[ 1] 。
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を利用するようになった[ 2] 。
MSBuildのプロジェクトファイル はApache Ant やNAnt (英語版 ) に似た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) )
参照
脚注
関連項目
外部リンク