Compartir a través de


Referencia de la línea de comandos de MSBuild

Si usa MSBuild.exe para compilar un proyecto o archivo de solución, puede incluir varios modificadores para especificar distintos aspectos del proceso.

MSBuild.exe [Switches] [ProjectFile]

Argumentos

Argumento

Descripción

ProjectFile

Crea los destinos en el archivo de proyecto especificado. Si no se especifica un archivo de proyecto, MSBuild busca en el archivo de trabajo actual una extensión de nombre de archivo que termine en "proj" y usa ese archivo. También puede especificar un archivo de solución de Visual Studio para este argumento.

Modificadores

Modificador

Forma abreviada

Descripción

/help

/? o /h

Muestra información de uso. El comando siguiente muestra un ejemplo:

msbuild.exe /?

/detailedsummary

/ds

Muestra información detallada al final del registro de compilación sobre las configuraciones que se compilaron y cómo se programaron en los nodos.

/ignoreprojectextensions: extensions

/ignore: extensions

Omite las extensiones especificadas al determinar qué archivo de proyecto se va a compilar. Use un punto y coma o una coma para separar varias extensiones, como se muestra en el ejemplo siguiente:

/ignoreprojectextensions:.vcproj,.sln

/maxcpucount[:number]

/m[:number]

Especifica el número máximo de procesos simultáneos que se pueden usar al compilar. Si no incluye este modificador, el valor predeterminado es 1. Si incluye este modificador sin especificar un valor, MSBuild podrá usar todos los procesadores de que disponga el equipo. Para obtener más información, vea Compilar varios proyectos en paralelo con MSBuild.

En el ejemplo siguiente se indica a MSBuild que efectúe la compilación usando tres procesos de MSBuild, lo que permite compilar tres proyectos al mismo tiempo:

msbuild myproject.proj /maxcpucount:3

/noautoresponse

/noautorsp

No incluye automáticamente ningún archivo MSBuild.rsp.

/nodeReuse:value

/nr:value

Habilita o deshabilita la reutilización de los nodos de MSBuild. Puede especificar los siguientes valores:

  • True. Los nodos permanecen al finalizar la compilación de modo que las compilaciones subsiguientes puedan usarlos (valor predeterminado).

  • False. Los nodos no se conservan después finalizar la compilación.

Un nodo corresponde a un proyecto que se está ejecutando. Si incluye el modificador /maxcpucount, se podrán ejecutar varios nodos simultáneamente.

/nologo

No muestra la pancarta de inicio ni el mensaje de copyright.

/preprocess[:filepath]

/pp[:filepath]

Crea un solo archivo de proyecto agregado alineando todos los archivos que se importarían durante una compilación, con sus límites marcados. Puede usar este modificador para determinar con mayor facilidad qué archivos se van a importar, desde dónde y cuáles contribuirán a la compilación. Si se usa este modificador, el proyecto no se compila.

Si especifica el parámetro filepath, el archivo de proyecto agregado se genera en el archivo. En caso contrario, los resultados aparecen en la ventana de la consola.

Para obtener información sobre cómo usar el elemento Import para incrustar un archivo de proyecto en otro, vea Elemento Import (MSBuild) y Cómo: Utilizar el mismo destino en varios archivos de proyecto.

/property:name=value

/p:name=value

Establece o invalida las propiedades en el nivel de proyecto especificadas, donde name es el nombre de la propiedad y value es el valor de propiedad. Especifique cada propiedad por separado, o use un punto y coma o una coma para separar varias propiedades, como se muestra en el ejemplo siguiente:

/property:WarningLevel=2;OutDir=bin\Debug

/target:targets

/t:targets

Compila los destinos especificados en el proyecto. Especifique cada destino por separado, o use un punto y coma o una coma para separar varios destinos, como se muestra en el ejemplo siguiente:

/target:Resources;Compile

Si especifica destinos usando este modificador, estos se ejecutarán en lugar de los especificados en el atributo DefaultTargets del archivo de proyecto. Para obtener más información, vea Orden de compilación de destinos y Cómo: Especificar qué destino utilizar primero al compilar.

Un destino es un grupo de tareas. Para obtener más información, vea Objetivos de MSBuild.

/toolsversion:version

/tv:version

Especifica la versión del conjunto de herramientas que se va a usar para compilar el proyecto, como se muestra en el ejemplo siguiente: /toolsversion:3.5

Mediante este modificador, puede compilar un proyecto y especificar una versión diferente de la especificada en el Elemento Project (MSBuild). Para obtener más información, vea Invalidar el valor de la versión de herramientas.

En MSBuild 4.5, puede especificar los valores siguientes para version: 2.0, 3.5 y 4.0. Si especifica 4.0, la propiedad de compilación VisualStudioVersion especifica el subconjunto de herramientas que se va a usar. Para obtener más información, vea la sección de subconjuntos de herramientas de Conjunto de herramientas de MSBuild (ToolsVersion).

Un conjunto de herramientas consta de tareas, destinos y herramientas que se utilizan para compilar una aplicación. Las herramientas incluyen compiladores como csc.exe y vbc.exe. Para obtener más información sobre los conjuntos de herramientas, vea Conjunto de herramientas de MSBuild (ToolsVersion), Configuraciones de conjuntos de herramientas estándar y personalizados y Información general sobre compatibilidad con múltiples versiones (multi-targeting) de MSBuild.

Nota

La versión del conjunto de herramientas no es la misma que la versión de .NET Framework de destino, que es la versión de .NET Framework para la que se compila un proyecto.Para obtener más información, vea Versión de .NET Framework de destino y plataforma de destino de MSBuild.

/validate:[schema]

/val[schema]

Valida el archivo de proyecto y, si la validación es correcta, lo compila.

Si no especifica schema, el proyecto se valida con el esquema predeterminado.

Si especifica schema, el proyecto se valida con el esquema especificado.

El valor siguiente muestra un ejemplo: /validate:MyExtendedBuildSchema.xsd

/verbosity:level

/v:level

Especifica la cantidad de información que se va a mostrar en el registro de compilación. Cada registrador muestra eventos en función del nivel de detalle establecido para él.

Puede especificar los niveles de detalles siguientes: q[uiet], m[inimal], n[ormal], d[etailed] y diag[nostic].

El valor siguiente muestra un ejemplo: /verbosity:quiet

/version

/ver

Muestra solo la información de versión. El proyecto no se compila.

@file

Inserta los modificadores de línea de comando de un archivo de texto. Si tiene varios archivos, deberá especificarlos por separado. Para obtener más información, vea Archivos de respuesta de MSBuild.

Modificadores para registradores

Modificador

Forma abreviada

Descripción

/consoleloggerparameters:

parameters

/clp:parameters

Pasa los parámetros especificados al registrador de la consola, lo que muestra información de compilación en la ventana de la consola. Puede especificar los parámetros siguientes:

  • PerformanceSummary. Muestra el tiempo empleado en tareas, destinos y proyectos.

  • Summary. Muestra un resumen de errores y advertencias al final.

  • NoSummary. No muestra un resumen de errores y advertencias al final.

  • ErrorsOnly. Muestra solo errores.

  • WarningsOnly. Muestra solo advertencias.

  • NoItemAndPropertyList. No muestra la lista de elementos y propiedades que aparecerían al principio de cada compilación del proyecto si se estableciera el nivel de detalle en diagnostic.

  • ShowCommandLine. Muestra los mensajes de TaskCommandLineEvent.

  • ShowTimestamp. Muestra la marca de tiempo como un prefijo en los mensajes.

  • ShowEventId. Muestra el identificador de evento para los eventos iniciados, los eventos finalizados y los mensajes.

  • ForceNoAlign. No alinea el texto al tamaño del búfer de la consola.

  • DisableConsoleColor. Usa los colores de consola predeterminados para todos los mensajes de registro.

  • DisableMPLogging. Deshabilita el estilo de registro de resultados de multiprocesador al ejecutarse en el modo de no multiprocesador.

  • EnableMPLogging. Habilita el estilo de registro de multiprocesador aunque se ejecute en el modo de no multiprocesador. Este estilo de registro está habilitado de forma predeterminada.

  • Verbosity. Invalida el valor /verbosity para este registrador.

Use un punto y coma o una coma para separar varios parámetros, como se muestra en el ejemplo siguiente:

/consoleloggerparameters:PerformanceSummary;NoSummary /verbosity:minimal

/distributedFileLogger

/dfl

Registra los resultados de la compilación de cada nodo de MSBuild en su propio archivo. La ubicación inicial de estos archivos es el directorio actual. De forma predeterminada, estos archivos se denominan "MSBuildNodeId.log". Puede usar el modificador /fileLoggerParameters para especificar la ubicación de estos archivos y otros parámetros de fileLogger.

Si asigna un nombre a un archivo de registro mediante el modificador /fileLoggerParameters, el registrador distribuido usará ese nombre como plantilla y anexará el identificador del nodo a dicho nombre al crear un archivo de registro para cada nodo.

/distributedlogger:

central logger*

forwarding logger

/dl:central logger*forwarding logger

Registra eventos de MSBuild, adjuntando una instancia del registrador diferente a cada nodo. Para especificar varios registradores, hágalo por separado.

Use la sintaxis de registrador para especificar un registrador. Para la sintaxis de registrador, vea el modificador /logger a continuación.

En los ejemplos siguientes se muestra cómo utilizar este modificador:

/dl:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral

/dl:MyLogger,C:\My.dll*ForwardingLogger,C:\Logger.dll

/fileLogger

[número]

/fl[number]

Registra el resultado de la compilación en un archivo único en el directorio actual. Si no especifica number, el archivo de salida se denomina msbuild.log. Si especifica number, el archivo de salida se denomina msbuildn.log, donde n es number. Number puede ser un dígito comprendido entre 1 y 9.

Puede usar el modificador /fileLoggerParameters para especificar la ubicación de este archivo y otros parámetros de fileLogger.

/fileloggerparameters:[número]

parameters

/flp:[ number] parameters

Especifica parámetros adicionales del registrador de archivos y del registrador de archivos distribuido. La presencia de este modificador implica también la presencia del modificador /filelogger[number] correspondiente. Number puede ser un dígito comprendido entre 1 y 9.

Puede usar todos los parámetros que se enumeran para /consoleloggerparameters. También puede utilizar uno o varios de los parámetros siguientes:

  • LogFile. La ruta de acceso del archivo de registro donde se escribe el registro de compilación. El registrador de archivos distribuido usa esta ruta de acceso como prefijo en los nombres de los archivos de registro.

  • Append. Determina si el registro de compilación se anexará al archivo de registro o lo sobrescribirá. Cuando se establece el modificador, el registro de compilación se anexa al archivo de registro. Si el modificador no está presente, se sobrescribe el contenido de un archivo de registro existente.

    Si incluye el modificador append, el registro se anexará, independientemente de si está establecido en true o en false. Si no incluye el modificador append, el registro se sobrescribe.

    En este caso el archivo se sobrescribe: msbuild myfile.proj /l:FileLogger,Microsoft.Build.Engine;logfile=MyLog.log

    En este caso el archivo se anexa: msbuild myfile.proj /l:FileLogger,Microsoft.Build.Engine;logfile=MyLog.log;append=true

    En este caso el archivo se anexa: msbuild myfile.proj /l:FileLogger,Microsoft.Build.Engine;logfile=MyLog.log;append=false 

  • Encoding. Especifica la codificación del archivo (por ejemplo, UTF-8, Unicode o ASCII).

El ejemplo siguiente genera archivos de registro independientes para advertencias y errores:

/flp1:logfile=errors.txt;errorsonly /flp2:logfile=warnings.txt;warningsonly

En los ejemplos siguientes se muestran otras posibilidades:

/fileLoggerParameters:LogFile=MyLog.log;Append; Verbosity=diagnostic;Encoding=UTF-8

/flp:Summary;Verbosity=minimal;LogFile=msbuild.sum

/flp1:warningsonly;logfile=msbuild.wrn

/flp2:errorsonly;logfile=msbuild.err

/logger:

logger

/l:logger

Especifica el registrador que se debe utilizar para registrar los eventos de MSBuild. Para especificar varios registradores, hágalo por separado.

Utilice la sintaxis siguiente para logger: [LoggerClass,]LoggerAssembly[;LoggerParameters]

Utilice la sintaxis siguiente para LoggerClass: [PartialOrFullNamespace.]LoggerClassName

No necesita especificar la clase de registrador si el ensamblado contiene exactamente un registrador.

Utilice la sintaxis siguiente para LoggerAssembly: {AssemblyName[,StrongName] | AssemblyFile}

Los parámetros del registrador son opcionales y se pasan al registrador tal como se han escrito.

En los ejemplos siguientes se usa el modificador /logger.

/logger:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral

/logger:XMLLogger,C:\Loggers\MyLogger.dll;OutputAsHTML

/noconsolelogger

/noconlog

Deshabilita el registrador de la consola predeterminado y no registra eventos en la consola.

Ejemplo

En el siguiente ejemplo se compila el destino rebuild del proyecto MyProject.proj.

MSBuild.exe MyProject.proj /t:rebuild

Puede usar MSBuild.exe para realizar compilaciones más complejas. Por ejemplo, puede utilizarlo para compilar determinados destinos de proyectos específicos de una solución. En el ejemplo siguiente se recompila el proyecto NotInSolutionFolder y se "limpia" el proyecto InSolutionFolder, que está en la carpeta de soluciones NewFolder.

msbuild SlnFolders.sln /t:NotInSolutionfolder:Rebuild;NewFolder\InSolutionFolder:Clean

Vea también

Referencia

Propiedades comunes de proyectos de MSBuild

Otros recursos

Referencia de MSBuild