Project 要素 (MSBuild)

MSBuild プロジェクト ファイルの必須のルート要素です。

構文

<Project InitialTargets="TargetA;TargetB"  
         DefaultTargets="TargetC;TargetD"  
         TreatAsLocalProperty="PropertyA;PropertyB"  
         ToolsVersion=<version number>  
         xmlns="http://schemas.microsoft.com/developer/msbuild/2003">  
    <Choose>... </Choose>  
    <PropertyGroup>... </PropertyGroup>  
    <ItemGroup>... </ItemGroup>  
    <Target>... </Target>  
    <UsingTask.../>  
    <ProjectExtensions>... </ProjectExtensions>  
    <Import... />  
</Project>  

属性および要素

以降のセクションでは、属性、子要素、および親要素について説明します。

属性

属性 説明
DefaultTargets 省略可能な属性です。

ターゲットが指定されていない場合にビルドのエントリ ポイントとなる 1 つまたは複数の既定のターゲット。 複数のターゲットはセミコロン (;) で区切られます。

DefaultTargets 属性または MSBuild コマンド ラインのいずれかで既定のターゲットが指定されていない場合、Import 要素の評価後、エンジンはプロジェクト ファイルの最初のターゲットを実行します。
InitialTargets 省略可能な属性です。

DefaultTargets 属性またはコマンド ラインで指定されたターゲットの前に実行される 1 つまたは複数の初期ターゲット。 複数のターゲットはセミコロン (;) で区切られます。
SDK 省略可能な属性です。 (Visual Studio 2017 以降の .NET Core プロジェクトでのみ利用できます。)

.proj ファイルに追加される暗黙的インポート ステートメントの作成に利用される SDK バージョン。 たとえば、<Project Sdk="Microsoft.NET.Sdk/1.0.0-RC" /> のようにします。
ToolsVersion 省略可能な属性です。

MSBuild が $(MSBuildBinPath) と $(MSBuildToolsPath) の値を決定するために使用するツールセットのバージョン。
TreatAsLocalProperty 省略可能な属性です。

グローバルとは見なされないプロパティ名。 この属性は、プロジェクトまたはターゲット ファイル、および後続のすべてのインポートに設定されているプロパティ値が特定のコマンド ライン プロパティによってオーバーライドされることを防ぎます。 複数のプロパティはセミコロン (;) で区切られます。

通常、グローバル プロパティは、プロジェクト ファイルまたはターゲット ファイルで設定されたプロパティ値をオーバーライドします。 プロパティが TreatAsLocalProperty 値に一覧表示されている場合、グローバル プロパティ値は、そのファイルと後続のインポートに設定されているプロパティ値をオーバーライドしません。 詳細については、「方法 : 同じソース ファイルを異なるオプションでビルドする」を参照してください。 注: グローバル プロパティは、コマンド プロンプトで /property (または /p) スイッチを使用して設定します。 また、複数プロジェクト ビルドの子プロジェクトのグローバル プロパティは、MSBuild タスクの Properties 属性を使用して設定または変更することもできます。 詳細については、「MSBuild タスク」を参照してください。
Xmlns 省略可能な属性です。

xmlns 属性には、"http://schemas.microsoft.com/developer/msbuild/2003" の値を指定する必要があります。

子要素

要素 説明
Choose 省略可能な要素です。

子要素を評価して、ItemGroup 要素および/または PropertyGroup 要素の 1 つのセットを評価対象に選択します。
Import 省略可能な要素です。

プロジェクト ファイルが別のプロジェクト ファイルをインポートできるようにします。 1 つのプロジェクトに 0 個以上の Import 要素を含めることができます。
ItemGroup 省略可能な要素です。

個々の項目の grouping 要素。 項目は Item 要素を使用して指定されます。 1 つのプロジェクトに 0 個以上の ItemGroup 要素を含めることができます。
ProjectExtensions 省略可能な要素です。

MSBuild プロジェクト ファイルに MSBuild 以外の情報を保持する方法を提供します。 1 つのプロジェクトに 0 個または 1 個の ProjectExtensions 要素を含めることができます。
PropertyGroup 省略可能な要素です。

個々のプロパティの grouping 要素。 プロパティは Property 要素を使用して指定されます。 1 つのプロジェクトに 0 個以上の PropertyGroup 要素を含めることができます。
Target 省略可能な要素です。

MSBuild が順次実行するタスクのセットを格納します。 タスクは Task 要素を使用して指定されます。 1 つのプロジェクトに 0 個以上の Target 要素を含めることができます。
UsingTask 省略可能な要素です。

MSBuild にタスクを登録する方法を提供します。 1 つのプロジェクトに 0 個以上の UsingTask 要素を含めることができます。

親要素

なし。

関連項目

方法 : 最初にビルドするターゲットを指定する
Command-Line Reference (コマンド ライン リファレンス)
プロジェクト ファイル スキーマ リファレンス
MSBuild