Elementos comunes de proyectos de MSBuild

En MSBuild, un elemento es una referencia con nombre a uno o varios archivos. Los elementos contienen metadatos como nombres de archivo, rutas de acceso y números de versión. Todos los tipos de proyecto de Visual Studio tienen varios elementos en común. Estos elementos se definen en el archivo Microsoft.Build.CommonTypes.xsd.

En este artículo se enumeran todos los elementos de proyecto comunes.

Referencia

Representa una referencia de ensamblado (administrada) del proyecto.

Nombre de metadatos de elementos Descripción
HintPath Cadena opcional. Ruta de acceso absoluta o relativa del ensamblado.
NOMBRE Cadena opcional. Nombre para mostrar del ensamblado, por ejemplo, "System.Windows.Forms".
FusionName Cadena opcional. Especifica el nombre de fusión sencillo o seguro del elemento.

Cuando este atributo está presente, puede ahorrar tiempo porque el archivo de ensamblado no tiene que abrirse para obtener el nombre de fusión.
SpecificVersion Booleano opcional. Especifica si solo se debe hacer referencia a la versión del nombre de fusión.
Alias Cadena opcional. Cualquier alias de la referencia.
Private Booleano opcional. Especifica si la referencia debe copiarse en la carpeta de salida. Este atributo coincide con la propiedad Copia local de la referencia que está en el IDE de Visual Studio.

COMReference

Representa una referencia a un componente COM (no administrado) del proyecto. Este elemento solo se aplica a los proyectos de .NET.

Nombre de metadatos de elementos Descripción
NOMBRE Cadena opcional. El nombre para mostrar del componente.
GUID Cadena necesaria. GUID del componente, con el formato {12345678-1234-1234-1234-123456781234}.
VersionMajor Cadena necesaria. Parte principal del número de versión del componente. Por ejemplo, "5" si el número de versión completo es "5.46".
VersionMinor Cadena necesaria. Parte secundaria del número de versión del componente. Por ejemplo, "46" si el número de versión completo es "5.46".
EmbedInteropTypes Booleano opcional. Si es true, inserte los tipos de interoperabilidad de esta referencia directamente en el ensamblado en lugar de generar un archivo DLL de interoperabilidad.
Lcid Cadena opcional. LocaleID del componente.
WrapperTool Cadena opcional. Nombre de la herramienta contenedor que se usa en el componente. Los valores son:

1. primary
2. tlbimp
3. primaryortlbimp
4. aximp
Isolated Booleano opcional. Especifica si se trata de un componente sin registro.

COMFileReference

Representa una lista de las bibliotecas de tipos que se pasan al parámetro TypeLibFiles del destino ResolveComReference. Este elemento solo se aplica a los proyectos de .NET.

Nombre de metadatos de elementos Descripción
WrapperTool Cadena opcional. Nombre de la herramienta contenedor que se usa en el componente. Los valores son:

1. primary
2. tlbimp
3. primaryortlbimp
4. aximp

NativeReference

Representa un archivo de manifiesto nativo o una referencia a este archivo.

Nombre de metadatos de elementos Descripción
NOMBRE Cadena necesaria. Nombre base del archivo de manifiesto.
HintPath Cadena necesaria. Ruta de acceso relativa del archivo de manifiesto.

ProjectReference

Representa una referencia a otro proyecto. Los elementos ProjectReference se transforman en elementos de referencia mediante el destino ResolveProjectReferences, por lo que es posible que los metadatos válidos en una referencia sean válidos en ProjectReference, si el proceso de transformación no los sobrescribe.

Nombre de metadatos de elementos Descripción
NOMBRE Cadena opcional. Nombre para mostrar de la referencia.
GlobalPropertiesToRemove Objeto string[] opcional. Nombres de las propiedades que se van a quitar al compilar el proyecto al que se hace referencia, por ejemplo, RuntimeIdentifier;PackOnBuild. El valor predeterminado es vacío.
Proyecto Cadena opcional. GUID de la referencia, con el formato {12345678-1234-1234-1234-123456781234}.
OutputItemType Cadena opcional. Tipo de elemento al que se van a emitir salidas de destino. El valor predeterminado es en blanco. Si los metadatos de referencia se establecen en "true" (valor predeterminado), las salidas de destino se convierten en referencias para el compilador.
ReferenceOutputAssembly Booleano opcional. Si se establece falseen , no incluye la salida del proyecto al que se hace referencia como referenciade este proyecto, pero garantiza que el otro proyecto se compile antes de este. Tiene como valor predeterminado true.
Private Booleano opcional. Especifica si la referencia debe copiarse en la carpeta de salida. Este atributo coincide con la propiedad Copia local de la referencia que está en el IDE de Visual Studio.
SetConfiguration Cadena opcional. Establece la propiedad global Configuration del proyecto al que se hace referencia, por ejemplo, Configuration=Release.
SetPlatform Cadena opcional. Establece la propiedad global Platform del proyecto al que se hace referencia, por ejemplo, Platform=AnyCPU.
SetTargetFramework Cadena opcional. Establece la propiedad global TargetFramework del proyecto al que se hace referencia, por ejemplo, TargetFramework=netstandard2.0.
SkipGetTargetFrameworkProperties Booleano opcional. Si es true, compila el proyecto al que se hace referencia sin negociar el valor TargetFramework más compatible. Tiene como valor predeterminado false.
Destinos Objeto string[] opcional. Lista separada por puntos y coma de destinos de los proyectos a los que se hace referencia que deben compilarse. El valor $(ProjectReferenceBuildTargets)predeterminado es , que tiene como valor predeterminado vacío, que indica los destinos predeterminados.

Nota:

Existe una diferencia en el funcionamiento de las referencias de proyecto entre .NET Framework y .NET Core (incluido .NET 5 y versiones posteriores). En los proyectos de .NET Framework, las referencias de proyecto no son transitivas. Es decir, si Project1 hace referencia a Project2 y Project2 hace referencia a Project3, no se puede programar para Project3 desde Project1. Sin embargo, en .NET Core (incluido .NET 5 y versiones posteriores), las referencias de proyecto son transitivas. Es posible programar para Project3 desde Project1.

Compile

Representa los archivos de código fuente para el compilador.

Nombre de metadatos de elementos Descripción
DependentUpon Cadena opcional. Especifica el archivo del que depende este archivo para compilarse correctamente.
AutoGen Booleano opcional. Indica si el entorno de desarrollo integrado (IDE) de Visual Studio ha generado el archivo para el proyecto.
Link Cadena opcional. Ruta de acceso notacional que se va a mostrar cuando el archivo se encuentre físicamente fuera de la influencia del archivo de proyecto.
Visible Booleano opcional. Indica si se va a mostrar el archivo en el Explorador de soluciones de Visual Studio.
CopyToOutputDirectory Cadena opcional. Determina si el archivo se va a copiar en el directorio de resultados. Los valores son:

1. Never
2. Always
3. PreserveNewest

EmbeddedResource

Representa los recursos que se van a incrustar en el ensamblado generado.

Nombre de metadatos de elementos Descripción
DependentUpon Cadena opcional. Especifica el archivo del que depende este archivo para compilarse correctamente.
Generator Cadena opcional. Nombre de cualquier generador de archivos que se ejecute en este elemento.
LastGenOutput Cadena opcional. Nombre del archivo creado por cualquier generador de archivos que se ejecutó en este elemento.
CustomToolNamespace Cadena opcional. Espacio de nombres en el que cualquier generador de archivos que se ejecute en este elemento debe crear código.
Link Cadena opcional. La ruta de acceso notacional se muestra si el archivo se encuentra físicamente fuera de la influencia del proyecto.
Visible Booleano opcional. Indica si se va a mostrar el archivo en el Explorador de soluciones de Visual Studio.
CopyToOutputDirectory Cadena opcional. Determina si el archivo se va a copiar en el directorio de resultados. Los valores son:

1. Never
2. Always
3. PreserveNewest
LogicalName Cadena necesaria. Nombre lógico del recurso incrustado.

Contenido

Representa los archivos que no se compilan en el proyecto, pero que se pueden incrustar o publicar junto con él.

Nombre de metadatos de elementos Descripción
DependentUpon Cadena opcional. Especifica el archivo del que depende este archivo para compilarse correctamente.
Generator Cadena opcional. Nombre de cualquier generador de archivos que se ejecute en este elemento.
LastGenOutput Cadena opcional. Nombre del archivo creado por cualquier generador de archivos que se ejecutó en este elemento.
CustomToolNamespace Cadena opcional. Espacio de nombres en el que cualquier generador de archivos que se ejecute en este elemento debe crear código.
Link Cadena opcional. Ruta de acceso notacional que se mostrará si el archivo se encuentra físicamente fuera de la influencia del proyecto.
PublishState Cadena necesaria. El estado de publicación del contenido:

- Predeterminado
- Incluido
- xcluded
- Archivo de datos
- Requisito previo
IsAssembly Booleano opcional. Especifica si el archivo es un ensamblado.
Visible Booleano opcional. Indica si se va a mostrar el archivo en el Explorador de soluciones de Visual Studio.
CopyToOutputDirectory Cadena opcional. Determina si el archivo se va a copiar en el directorio de resultados. Los valores son:

1. Never
2. Always
3. PreserveNewest
TargetPath Cadena opcional. La ruta de acceso de salida (relativa al directorio de salida específico de la configuración o de la plataforma) de un elemento, incluido el nombre de archivo. Esto respeta los metadatos de Link, si se proporcionan. Si no se proporciona TargetPath, se calcula durante el proceso de compilación. Consulte AssignTargetPath.

None

Representa archivos que no deberían tener ningún rol en el proceso de compilación.

Nombre de metadatos de elementos Descripción
DependentUpon Cadena opcional. Especifica el archivo del que depende este archivo para compilarse correctamente.
Generator Cadena opcional. Nombre de cualquier generador de archivos que se ejecute en este elemento.
LastGenOutput Cadena opcional. Nombre del archivo creado por cualquier generador de archivos que se ejecutó en este elemento.
CustomToolNamespace Cadena opcional. Espacio de nombres en el que cualquier generador de archivos que se ejecute en este elemento debe crear código.
Link Cadena opcional. Ruta de acceso notacional que se mostrará si el archivo se encuentra físicamente fuera de la influencia del proyecto.
Visible Booleano opcional. Indica si se va a mostrar el archivo en el Explorador de soluciones de Visual Studio.
CopyToOutputDirectory Cadena opcional. Determina si el archivo se va a copiar en el directorio de resultados. Los valores son:

1. Never
2. Always
3. PreserveNewest

AssemblyMetadata

Representa los atributos de ensamblado que se van a generar como [AssemblyMetadata(key, value)].

Nombre de metadatos de elementos Descripción
Incluir Se convierte en el primer parámetro (la clave) del constructor de atributo AssemblyMetadataAttribute.
Valor Cadena necesaria. Se convierte en el segundo parámetro (el valor) del constructor de atributo AssemblyMetadataAttribute.

Nota

Este elemento se aplica a los proyectos que usan el SDK para .NET 5 (y .NET Core) y versiones posteriores.

InternalsVisibleTo

Especifica los ensamblados que se van a emitir como atributos de ensamblado [InternalsVisibleTo(..)].

Nombre de metadatos de elementos Descripción
Incluir Nombre del ensamblado.
Clave Cadena opcional. La clave pública del ensamblado.

Nota

Este elemento se aplica a los proyectos que usan el SDK para .NET 5 (y .NET Core) y versiones posteriores.

BaseApplicationManifest

Representa el manifiesto de aplicación base de la compilación y contiene información de seguridad de implementación de ClickOnce.

CodeAnalysisImport

Representa el proyecto FxCop que se importará.

Importar

Representa los ensamblados cuyos espacios de nombres debe importar el compilador de Visual Basic.

Carpeta

Visual Studio solo usa este elemento como marcador de posición para una carpeta vacía. Cuando se rellena la carpeta, se reemplaza por otro elemento.

Consulte también