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.
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 - Excluido - 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.