MSBuild プロジェクト ファイルには、プロジェクトのビルド方法を定義する 1 つ以上のターゲットを含めることができます。 MSBuild は、次の場合を除き、検出された最初のターゲットと依存関係を構築します。
Project要素には、InitialTargets属性が含まれています。Project要素には、DefaultTargets属性が含まれています。- MSBuild コマンドには、ターゲットを指定する
-targetスイッチがあります。
InitialTargets 属性を使用する
Project 要素の InitialTargets 属性は、最初に実行される初期ターゲットを指定します。 コマンド ラインまたは Project 要素の DefaultTargets 属性で MSBuild を使用して指定した任意のターゲットをオーバーライドします。
1 つの初期ターゲットを指定する
Project 要素の InitialTargets 属性に既定のターゲットを指定します。 例えば:
<Project InitialTargets="Clean">
複数の初期ターゲットを指定する
Project 要素の InitialTargets 属性には、複数の初期ターゲットを指定できます。 ターゲットを順番に一覧表示し、セミコロンを使用して各ターゲットを区切ります。 リスト内のターゲットは順番に実行されます。
たとえば、Clean ターゲットを実行し、次に Compile ターゲットを実行するには、次のように入力します。
<Project InitialTargets="Clean;Compile">
DefaultTargets 属性を使用する
Project 要素の DefaultTargets 属性は、コマンド ラインでターゲットが明示的に指定されていない場合にビルドされるターゲットを指定します。
Project 要素の InitialTargets 属性と DefaultTargets 属性の両方でターゲットが指定されていて、コマンド ラインでターゲットが指定されていない場合、MSBuild は、InitialTargets 属性で指定されたターゲットの後に、DefaultTargets 属性で指定されたターゲットを実行します。
1 つの既定のターゲットを指定する
Project 要素の DefaultTargets 属性に既定のターゲットを指定します。 例えば:
<Project DefaultTargets="Compile">`
複数の既定のターゲットを指定する
Project 要素の DefaultTargets 属性には、複数の既定のターゲットを指定できます。 既定のターゲットを順番に一覧表示し、セミコロンを使用して各ターゲットを区切ります。 リスト内のターゲットは順番に実行されます。
たとえば、Clean ターゲットを実行し、次に Compile ターゲットを実行するには、次のように入力します。
<Project DefaultTargets="Clean;Compile">
-target スイッチを使用して既定のターゲットをオーバーライドする
既定のターゲットがプロジェクト ファイルで定義されていない場合、または定義された既定のターゲットを使用しない場合は、コマンド ライン スイッチ -target を使用して別のターゲットを指定できます。 -target スイッチで指定されたターゲットは、Project 要素の DefaultTargets 属性で指定されたターゲットの代わりに実行されます。 InitialTargets 属性で指定されたターゲットは、常に最初に実行されます。
既定のターゲットを 1 つのターゲットでオーバーライドする
-target コマンド ライン スイッチをコロン (:)とターゲットの名前) で使用して、最初のターゲットとして使用するターゲットを指定します。 例えば:
msbuild file.proj -target:Clean
既定のターゲットを複数のターゲットでオーバーライドする
最初のターゲットとして使用するターゲットの一覧を指定し、コマンド ライン スイッチ -target セミコロンで区切ります。 例えば:
msbuild <file name>.proj -t:Clean;Compile
関連コンテンツ
- MSBuild の概要
- MSBuild ターゲット
- ビルド をクリーンにする