Project 要素 (MSBuild)

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

構文

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

属性と要素

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

属性

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

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

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

DefaultTargets 属性またはコマンド ラインで指定されたターゲットの前に実行される 1 つまたは複数の初期ターゲット。 複数のターゲットはセミコロン (;) で区切られます。 複数のインポートされたファイルで InitialTargets が定義されている場合は、記載されているすべてのターゲットが、インポートが発生する順序で実行されます。
Sdk 省略可能な属性です。

.proj ファイルに追加される暗黙的なインポート ステートメントの作成に使用する SDK 名と省略可能なバージョン。 バージョンが指定されていない場合、MSBuild は、既定のバージョンを解決しようとします。 たとえば、<Project Sdk="Microsoft.NET.Sdk" /> または <Project Sdk="My.Custom.Sdk/1.0.0" /> です。
ToolsVersion 省略可能な属性です。

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

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

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

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

子要素

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

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

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

オプションの条件下でグループ化された Import 要素のコレクションが格納されます。
ItemGroup 省略可能な要素です。

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

一連の項目定義を定義できます。これは、プロジェクト内のすべての項目に既定で適用されるメタデータ値です。 ItemDefinitionGroup は、CreateItem タスクおよび CreateProperty タスクを使用する必要性より優先されます。
ProjectExtensions 省略可能な要素です。

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

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

MSBuild プロジェクト SDK が参照されます。 この要素は、Sdk 属性の代わりとして使用できます。
移行先 省略可能な要素です。

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

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

親要素

なし。

関連項目