MSBuild の既知の項目メタデータ

項目メタデータは、項目に添付される値です。 項目が作成されるときに MSBuild によって項目に割り当てられるものもありますが、任意のメタデータを必要に応じて定義することもできます。 一部のユーザー定義メタデータの値は、MSBuild、特定のタスク、または .NET SDK などの SDK にとって意味があります。

この記事の最初の表では、すべての項目の作成時に割り当てられるメタデータについて説明します。 次の表は、MSBuild に対して意味を持ついくつかの省略可能なメタデータを示しています。定義することでビルドの動作を制御できます。 それぞれの例で、C:\MyProject\Source\Program.cs ファイルをプロジェクトに含めるために次のアイテム宣言が使用されました。

<ItemGroup>
    <MyItem Include="Source\Program.cs" />
</ItemGroup>
項目メタデータ 説明
%(FullPath) アイテムの完全パスが含まれます。 たとえば次のような点です。

C:\MyProject\Source\Program.cs
%(RootDir) アイテムのルート ディレクトリが含まれます。 たとえば次のような点です。

C:\
%(Filename) 拡張子の付かない、アイテムのファイル名が含まれます。 たとえば次のような点です。

プログラム
%(Extension) アイテムのファイル名の拡張子が含まれます。 たとえば次のような点です。

.cs
%(RelativeDir) Include 属性に指定されたパスが最後の円記号 (\) まで含まれます。 たとえば次のような点です。

Source\

Include 属性が完全パスの場合、%(RelativeDir) はルート ディレクトリ %(RootDir) で始まります。 例:

C:\MyProject\Source\
%(Directory) ルート ディレクトリのないアイテムのディレクトリが含まれます。 たとえば次のような点です。

MyProject\Source\
%(RecursiveDir) Include 属性にワイルドカード ** が含まれる場合、このメタデータはワイルドカードを置き換えるパスの一部を指定します。 ワイルドカードの詳細については、「方法: ビルドするファイルを選択する」を参照してください。

C:\MySolution\MyProject\Source\ フォルダーに Program.cs ファイルが格納されている場合、およびプロジェクト ファイルに次のアイテムが含まれている場合:

<ItemGroup>

<MyItem Include="C:\**\Program.cs" />

</ItemGroup>

%(MyItem.RecursiveDir) の値は MySolution\MyProject\Source\ です。
%(Identity) Include 属性で指定されたアイテム。 たとえば次のような点です。

Source\Program.cs
%(ModifiedTime) アイテムが最後に変更された時間からのタイムスタンプが含まれます。 たとえば次のような点です。

2004-07-01 00:21:31.5073316
%(CreatedTime) アイテムが作成された時間からのタイムスタンプが含まれます。 たとえば次のような点です。

2004-06-25 09:26:45.8237425
%(AccessedTime) アイテムが最後にアクセスされた時間からのタイムスタンプが含まれます。

2004-08-14 16:52:36.3168743
%(DefiningProjectFullPath) この項目を定義するプロジェクト ファイル (またはインポートされたファイル) の完全なパスが含まれています。
%(DefiningProjectDirectory) この項目を定義するプロジェクト ファイル (またはインポートされたファイル) のプロジェクト ディレクトリが含まれています。
%(DefiningProjectName) この項目を定義するプロジェクト ファイル (またはインポートされたファイル) の名前 (拡張子なし) が含まれています。
%(DefiningProjectExtension) この項目を定義するプロジェクト ファイル (またはインポートされたファイル) の拡張子が含まれています。

関連項目