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 要素を含めることができます。 |
親要素
なし。