Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En MSBuild, un elemento es una referencia con nombre a una o varias cadenas, como nombres de archivo. 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 definidos en MSBuild. Los elementos y propiedades proporcionados por el SDK de .NET se documentan en la referencia de MSBuild para Microsoft.Net.Sdk.
MSBuild no establece ningún valor para metadatos opcionales y los metadatos no establecidos equivalen a una cadena vacía. Por lo tanto, el valor predeterminado para los metadatos opcionales es la cadena vacía. Sin embargo, los valores de metadatos a veces se establecen en archivos del SDK que se importan implícitamente. Los valores dependen del SDK al que se hace referencia.
Reference
Representa una referencia de ensamblado de .NET (administrado) en el proyecto.
| Nombre de metadatos del elemento | Description |
|---|---|
| HintPath | Cadena opcional. Ruta de acceso relativa o absoluta del ensamblado. |
| Name | Cadena opcional. Nombre para mostrar del ensamblado, por ejemplo, "System.Windows.Forms". |
| FusionName | Cadena opcional. Especifica el nombre de fusión simple o fuerte para el 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 | Boolean opcional. Especifica si solo se debe hacer referencia a la versión del nombre de fusión. |
| Aliases | Cadena opcional. Cualquier alias de la referencia. |
| Private | Boolean opcional. Especifica si la referencia se debe copiar en la carpeta de salida. Este atributo coincide con la propiedad Copy Local de la referencia que se encuentra en el IDE de Visual Studio. El valor predeterminado es false. |
Note
El Reference tipo de elemento también se puede usar para hacer referencia a ensamblados de contenedor pregenerados para objetos COM nativos, por ejemplo, si usó tlbimp.exe para generar un PIA (ensamblado de interoperabilidad primario). Este tipo de referencia es una opción adecuada cuando desea generar previamente los ensamblados de contenedor COM usted mismo con entradas conocidas, en lugar de confiar en el algoritmo de MSBuild para generar contenedores COM en tiempo de compilación, lo que introduce una dependencia en el estado del registro del sistema en la máquina de compilación donde se ejecuta MSBuild.
COMReference
Representa una referencia de componente COM (no administrado) en el proyecto. La tarea ResolveComReference usa este elemento, que genera los ensamblados de contenedor o, si EmbedInteropTypes se usa, inserta los tipos de interoperabilidad en el ensamblado. El uso de este tipo de referencia introduce una dependencia en el registro del sistema en el equipo de compilación, que se usa para buscar el objeto COM al que se hace referencia. Los artefactos COM y las entradas COM del Registro pueden cambiar cuando los productos se instalan, actualizan o desinstalan en la máquina (o cuando se ejecuta la misma compilación en otra máquina), lo que puede producir un ensamblado contenedor diferente incluso si la lógica de compilación no ha cambiado.
Este elemento no se aplica a non-.NET proyectos.
| Nombre de metadatos del elemento | Description |
|---|---|
| Name | Cadena opcional. Nombre para mostrar del componente. |
| Guid | Cadena necesaria. GUID del componente, con el formato {12345678-1234-1234-1234-123456781234}. |
| VersionMajor | Cadena necesaria. La 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 | Boolean 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 contenedora que se usa en el componente. Los valores son: 1. principal 2. tlbimp 3. primaryortlbimp 4. aximp |
| Isolated | Boolean opcional. Especifica si el componente es un componente sin reg. El valor predeterminado es false. |
Consulte Solución de problemas de referencias COM.
COMFileReference
Representa una lista de bibliotecas de tipos a las que se va a hacer referencia mediante la ruta de acceso del archivo, en lugar de usar el registro del sistema. Este tipo de referencia puede ser una buena alternativa a COMReference en los casos en los que quiera evitar una dependencia en el registro del equipo de compilación, ya sea porque la cuenta que ejecuta la compilación no tiene privilegios elevados para editar el registro en el servidor de compilación o no quiere que la compilación tenga una dependencia del estado del registro. Si usa COMFileReference para hacer referencia a un artefacto en una ruta de acceso del sistema, la compilación tiene una dependencia en el estado del sistema. Si el artefacto del sistema cambia debido a un cambio en el estado del sistema, como cuando los productos se instalan, actualizan o desinstalan (o si ejecuta la misma compilación en otra máquina), el ensamblado contenedor puede cambiar, incluso si la lógica de compilación no ha cambiado. Para garantizar un resultado de compilación coherente, puede almacenar en caché una copia conocida del artefacto COM en un lugar que controle, como en la carpeta del proyecto o la solución, y hacer referencia a ella en lugar del artefacto del sistema.
Este elemento no se aplica a non-.NET proyectos.
| Nombre de metadatos del elemento | Description |
|---|---|
| EmbedInteropTypes | Boolean 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. El valor predeterminado es False. |
| WrapperTool | Cadena opcional. Nombre de la herramienta contenedora que se usa en el componente. Los valores son: 1. principal 2. tlbimp 3. primaryortlbimp 4. aximp |
Consulte Solución de problemas de referencias COM.
NativeReference
Representa un archivo de manifiesto nativo o una referencia a este archivo.
| Nombre de metadatos del elemento | Description |
|---|---|
| Name | 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.
ProjectReference Los elementos se transforman en elementos de referencia por el ResolveProjectReferences destino, por lo que los metadatos válidos de una referencia pueden ser válidos en ProjectReference, si el proceso de transformación no lo sobrescribe.
| Nombre de metadatos del elemento | Description |
|---|---|
| Name | Cadena opcional. Nombre para mostrar de la referencia. |
| GlobalPropertiesToRemove | Opcional string[]. Nombres de 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. |
| Project | Cadena opcional. GUID de la referencia, con el formato {12345678-1234-1234-1234-123456781234}. |
| OutputItemType | Cadena opcional. Tipo de elemento en el que se van a emitir salidas de destino. El valor predeterminado está 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 | Boolean opcional. Si se establece falseen , no incluye la salida del proyecto al que se hace referencia como referencia de este proyecto, pero garantiza que el otro proyecto se compile antes de este. El valor predeterminado es true. |
| BuildReference | Boolean opcional. El valor predeterminado es true. Si se establece falseen , MSBuild no compilará esta clase ProjectReference. No se llamará a sus destinos predeterminados (consulte "Destinos" a continuación). |
| Private | Boolean opcional. Especifica si la referencia se debe copiar en la carpeta de salida. Este atributo coincide con la propiedad Copy Local de la referencia que se encuentra en el IDE de Visual Studio. |
| SetConfiguration | Cadena opcional. Establece la propiedad global Configuration para el proyecto al que se hace referencia, por ejemplo, Configuration=Release. |
| SetPlatform | Cadena opcional. Establece la propiedad global Platform para el proyecto al que se hace referencia, por ejemplo, Platform=AnyCPU. |
| SetTargetFramework | Cadena opcional. Establece la propiedad global TargetFramework para el proyecto al que se hace referencia, por ejemplo, TargetFramework=netstandard2.0. |
| SkipGetTargetFrameworkProperties | Boolean opcional. Si true, compila el proyecto al que se hace referencia sin negociar el valor de TargetFramework más compatible. El valor predeterminado es false. |
| Targets | Opcional string[]. Lista separada por punto y coma de destinos en los proyectos a los que se hace referencia que se deben compilar. Default es el valor de $(ProjectReferenceBuildTargets), que tiene como valor predeterminado vacío, lo que indica los destinos predeterminados. Al compilar en Visual Studio (en lugar de MSBuild.exe o dotnet build), especificar esto no impide que Visual Studio compile los destinos predeterminados del proyecto al que se hace referencia. |
Note
Hay una diferencia entre 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 codificar en Project3 desde Project1. Sin embargo, en .NET Core (incluido .NET 5 y versiones posteriores), las referencias de proyecto son transitivas. Puede codificar en Project3 en Project1.
Compile
Representa los archivos de origen del compilador.
| Nombre de metadatos del elemento | Description |
|---|---|
| DependentUpon | Cadena opcional. Especifica que el archivo de este archivo depende de que se compile correctamente. |
| AutoGen | Boolean opcional. Indica si el entorno de desarrollo integrado (IDE) de Visual Studio generó el archivo para el proyecto. El valor predeterminado es false. |
| Link | Cadena opcional. Ruta de acceso notational que se mostrará cuando el archivo se encuentra físicamente fuera de la influencia del archivo del proyecto. |
| Visible | Boolean opcional. Indica si se va a mostrar el archivo en el Explorador de soluciones en Visual Studio. El valor predeterminado es true. |
| CopyToOutputDirectory | Cadena opcional. Determina si se va a copiar el archivo en el directorio de salida. Los valores son: 1. Nunca 2. Siempre 3. ConservarNuevo más 4. IfDifferent El valor predeterminado es Never si DefineExplicitDefaults se establece en true; de lo contrario, el valor predeterminado es la cadena vacía. |
EmbeddedResource
Representa los recursos que se van a incrustar en el ensamblado generado.
| Nombre de metadatos del elemento | Description |
|---|---|
| Culture | Cadena opcional. Especifica la referencia cultural del archivo de recursos. Si se especifica, el proceso de compilación no deduce automáticamente la referencia cultural basada en la extensión de archivo (que depende de las referencias culturales disponibles para .NET/OS en el equipo que hospeda la compilación). Se recomienda encarecidamente establecer Culture={culture identifier} o WithCulture=false metadatos. |
| WithCulture | Bool opcional. Especifica que el archivo es independiente de la referencia cultural y la detección de referencia cultural por AssignCulture tarea debe omitirse. Se recomienda encarecidamente establecer Culture={culture identifier} o WithCulture=false metadatos. |
| DependentUpon | Cadena opcional. Especifica que el archivo de este archivo depende de que se compile 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 notational se muestra si el archivo se encuentra físicamente fuera de la influencia del proyecto. |
| Visible | Boolean opcional. Indica si se va a mostrar el archivo en el Explorador de soluciones en Visual Studio. |
| CopyToOutputDirectory | Cadena opcional. Determina si se va a copiar el archivo en el directorio de salida. Los valores son: 1. Nunca 2. Siempre 3. ConservarNuevo más 4. IfDifferent El valor predeterminado es Never si DefineExplicitDefaults se establece en true; de lo contrario, el valor predeterminado es la cadena vacía. |
| LogicalName | Cadena necesaria. Nombre lógico del recurso incrustado. |
Content
Representa los archivos que no se compilan en el proyecto, pero que se pueden incrustar o publicar junto con él.
| Nombre de metadatos del elemento | Description |
|---|---|
| DependentUpon | Cadena opcional. Especifica que el archivo de este archivo depende de que se compile 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 notational que se mostrará si el archivo se encuentra físicamente fuera de la influencia del proyecto. |
| PublishState | Cadena necesaria. Estado de publicación del contenido, ya sea: -Predeterminado -Incluido -Excluidos - DataFile -Prerrequisito |
| IsAssembly | Boolean opcional. Especifica si el archivo es un ensamblado. |
| Visible | Boolean opcional. Indica si se va a mostrar el archivo en el Explorador de soluciones en Visual Studio. |
| CopyToOutputDirectory | Cadena opcional. Determina si se va a copiar el archivo en el directorio de salida. Los valores son: 1. Nunca 2. Siempre 3. ConservarNuevo más 4. IfDifferent El valor predeterminado es Never si DefineExplicitDefaults se establece en true; de lo contrario, el valor predeterminado es la cadena vacía. |
| TargetPath | Cadena opcional. Ruta de acceso de salida (relativa al directorio de salida específico de la configuración o 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 los archivos que no deben tener ningún rol en el proceso de compilación.
| Nombre de metadatos del elemento | Description |
|---|---|
| DependentUpon | Cadena opcional. Especifica que el archivo de este archivo depende de que se compile 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 notational que se mostrará si el archivo se encuentra físicamente fuera de la influencia del proyecto. |
| Visible | Boolean opcional. Indica si se va a mostrar el archivo en el Explorador de soluciones en Visual Studio. |
| CopyToOutputDirectory | Cadena opcional. Determina si se va a copiar el archivo en el directorio de salida. Los valores son: 1. Nunca 2. Siempre 3. ConservarNuevo más 4. IfDifferent El valor predeterminado es Never si DefineExplicitDefaults se establece en true; de lo contrario, el valor predeterminado es la cadena vacía. |
AssemblyMetadata
Representa los atributos de ensamblado que se van a generar como [AssemblyMetadata(key, value)].
| Nombre de metadatos del elemento | Description |
|---|---|
| Include | Se convierte en el primer parámetro (la clave) del constructor de atributos AssemblyMetadataAttribute. |
| Value | Cadena necesaria. Se convierte en el segundo parámetro (el valor) del constructor de atributos AssemblyMetadataAttribute. |
Note
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 del elemento | Description |
|---|---|
| Include | Nombre del ensamblado. |
| Key | Cadena opcional. Clave pública del ensamblado. |
Note
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 para la compilación y contiene información de seguridad de implementación clickOnce.
CodeAnalysisImport
Representa el proyecto FxCop que se va a importar.
Import
Representa ensamblados cuyos espacios de nombres deben importar el compilador de Visual Basic.
Folder
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.