コマンド ラインでの MSBuild - C++
一般に、Visual Studio を使用してプロジェクトのプロパティを設定し、MSBuild システムを呼び出すことをお勧めします。 ただし、コマンド プロンプトから直接 MSBuild ツールを使用できます。 ビルド プロセスは、作成および編集できるプロジェクト ファイル (.vcxproj) の情報によって制御されます。 プロジェクト ファイルには、ビルドの段階、条件、およびイベントに基づくビルド オプションが指定されています。 さらに、0 個以上のコマンドラインの options 引数を指定できます。
msbuild.exe [ project_file ] [ options ]
/target (または /t) および /property (または /p) コマンドライン オプションを使用して、プロジェクト ファイルで指定されている特定のプロパティとターゲットをオーバーライドします。
プロジェクト ファイルの重要な機能は、プロジェクトに適用される特定の操作を表す "ターゲット" と、その操作の実行に必要な入力および出力を指定することです。 プロジェクト ファイルでは 1 つ以上のターゲットを指定でき、既定のターゲットを含めることができます。
各ターゲットは、1 つ以上の "タスク" のシーケンスで構成されます。 各タスクは、実行可能なコマンドを 1 つ含む .NET Framework クラスによって表されます。 たとえば、CL タスクには cl.exe コマンドが含まれます。
"タスク パラメーター" はクラス タスクのプロパティであり、通常は実行可能なコマンドのコマンド ライン オプションを表します。 たとえば、CL
タスクの FavorSizeOrSpeed
パラメーターは、/Os および /Ot の各コンパイラ オプションに対応しています。
追加のタスク パラメーターは、MSBuild インフラストラクチャをサポートします。 たとえば、Sources
タスク パラメーターは、他のタスクで使用できる一連のタスクを指定します。 MSBuild タスクの詳細については、タスク リファレンスに関するページを参照してください。
ほとんどのタスクには入力と出力が必要です。これには、ファイル名、パス、文字列パラメーター、数値パラメーター、ブール値パラメーターなどがあります。 たとえば、一般的な入力は、コンパイルする .cpp ソース ファイルの名前です。 重要な入力パラメーターは、ビルド構成とプラットフォームを指定する文字列です (例: "Debug|Win32")。 入力と出力は、Item
要素に含まれる 1 つ以上のユーザー定義の XML ItemGroup
要素で指定します。
プロジェクト ファイルには、ユーザー定義の "プロパティ" と ItemDefinitionGroup
"項目" を指定することもできます。 プロパティと項目は、ビルドで変数として使用できる名前と値のペアを形成します。 ペアの名前コンポーネントによって "マクロ" が定義され、値コンポーネントによって "マクロの値" が宣言されます。 プロパティ マクロには $(name) 表記を使用してアクセスし、項目マクロには %(name) 表記を使用してアクセスします。
プロジェクト ファイル内の他の XML 要素では、マクロをテストし、条件に従ってマクロの値を設定したり、ビルドの実行を制御したりできます。 マクロ名とリテラル文字列を連結して、パスとファイル名などの構成要素を生成することもできます。 コマンド ラインで /property オプションを使用すると、プロジェクト プロパティが設定またはオーバーライドされます。 コマンド ラインで項目を参照することはできません。
MSBuild システムでは、あるターゲットを、条件に従って別のターゲットの前または後に実行できます。 また、ターゲットで使用されるファイルが出力されるファイルよりも新しいかどうかに基づいて、ターゲットをビルドすることもできます。
MSBuild の詳細については、以下を参照してください。
MSBuild MSBuild の概念の概要。
MSBuild リファレンス MSBuild システムに関するリファレンス情報。
プロジェクト ファイル スキーマ リファレンス MSBuild XML スキーマ要素とその属性、親要素と子要素の一覧が掲載されています。 特に、ItemGroup、PropertyGroup、Target、および Task の各要素に注意してください。
コマンドライン リファレンス msbuild.exe で使用できるコマンドライン引数とオプションが説明されています。
タスク リファレンス MSBuild タスクが説明されています。 特に次に示す Visual C++ に固有のタスクに注意してください: BscMake タスク、CL タスク、CPPClean タスク、LIB タスク、Link タスク、MIDL タスク、MT タスク、RC タスク、SetEnv タスク、VCMessage タスク
このセクションの内容
用語 | 定義 |
---|---|
チュートリアル: MSBuild を使用した C++ プロジェクトの作成 | MSBuild を使用して Visual Studio C++ プロジェクトを作成する方法を示します。 |
方法: MSBuild プロジェクトでビルド イベントを使用する | ビルドの特定の段階 (ビルドが始まる前、リンク ステップが始まる前、またはビルドが終了した後) で発生するアクションを指定する方法を示します。 |
方法: MSBuild プロジェクトにカスタム ビルド ステップを追加する | ビルド シーケンスにユーザー定義の段階を追加する方法を示します。 |
方法: MSBuild プロジェクトにカスタム ビルド ツールを追加する | ビルド ツールを特定のファイルに関連付ける方法を示します。 |
方法: カスタム ツールをプロジェクト プロパティに統合する | カスタム ツールのオプションをプロジェクトのプロパティに追加する方法を示します。 |
方法: ターゲット フレームワークおよびプラットフォームのツールセットを変更する | 複数のフレームワークまたはツールセットのプロジェクトをコンパイルする方法を示します。 |