Metadatos de los elementos conocidos de MSBuild

Los metadatos de elementos son valores asociados a elementos. MSBuild asigna algunos de ellos a elementos al crearse estos, pero también puede definir los metadatos que necesite. Algunos valores de metadatos definidos por el usuario tienen significado para MSBuild, tareas específicas o SDK como el SDK de .NET.

En la primera tabla de este artículo se describen los metadatos asignados a cada elemento en el momento de su creación. En la tabla siguiente se muestran algunos metadatos opcionales que tienen significado para MSBuild, que puede definir para controlar el comportamiento de la compilación. En cada ejemplo, se usó la siguiente declaración de elementos para incluir el archivo C:\MyProject\Source\Program.cs en el proyecto.

<ItemGroup>
    <MyItem Include="Source\Program.cs" />
</ItemGroup>
Metadatos de elementos Descripción
%(FullPath) Contiene la ruta de acceso completa del elemento. Por ejemplo:

C:\MyProject\Source\Program.cs
%(RootDir) Contiene el directorio raíz del elemento. Por ejemplo:

C:\
%(Filename) Contiene el nombre de archivo del elemento, sin la extensión. Por ejemplo:

Program
%(Extension) Contiene la extensión de nombre de archivo del elemento. Por ejemplo:

.cs
%(RelativeDir) Contiene la ruta de acceso especificada en el atributo Include, hasta la última barra diagonal inversa (\). Por ejemplo:

Source\

Si el atributo Include es una ruta de acceso completa, %(RelativeDir) comienza por el directorio raíz %(RootDir). Por ejemplo:

C:\MyProject\Source\
%(Directory) Contiene el directorio del elemento, sin el directorio raíz. Por ejemplo:

MyProject\Source\
%(RecursiveDir) Si el atributo Include contiene el carácter comodín **, este metadato especifica la parte de la ruta de acceso que reemplaza el carácter comodín. Para obtener más información sobre los caracteres comodín, vea Cómo: Seleccionar los archivos que se van a compilar.

Si la carpeta C:\MySolution\MyProject\Source\ contiene el archivo Program.cs y si el archivo de proyecto contiene este elemento:

<ItemGroup>

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

</ItemGroup>

entonces el valor de %(MyItem.RecursiveDir) sería MySolution\MyProject\Source\.
%(Identity) El elemento especificado en el atributo Include. Por ejemplo:

Source\Program.cs
%(ModifiedTime) Contiene la marca de tiempo correspondiente a la última modificación del elemento. Por ejemplo:

2004-07-01 00:21:31.5073316
%(CreatedTime) Contiene la marca de tiempo correspondiente a la creación del elemento. Por ejemplo:

2004-06-25 09:26:45.8237425
%(AccessedTime) Contiene la marca de tiempo correspondiente a la última vez que se tuvo acceso al elemento.

2004-08-14 16:52:36.3168743
%(DefiningProjectFullPath) Contiene la ruta de acceso completa del archivo de proyecto (o archivo importado) que define este elemento.
%(DefiningProjectDirectory) Contiene el directorio del proyecto del archivo de proyecto (o archivo importado) que define este elemento.
%(DefiningProjectName) Contiene el nombre del archivo de proyecto (o archivo importado) que define este elemento (sin la extensión).
%(DefiningProjectExtension) Contiene la extensión del archivo de proyecto (o archivo importado) que define este elemento.

Consulte también