Compartir a través de


MSBuild@1: tarea de MSBuild v1

Use esta tarea para compilar con MSBuild.

Syntax

# MSBuild v1
# Build with MSBuild.
- task: MSBuild@1
  inputs:
    solution: '**/*.sln' # string. Required. Project. Default: **/*.sln.
    #msbuildLocationMethod: 'version' # 'version' | 'location'. MSBuild. Default: version.
    #msbuildVersion: 'latest' # 'latest' | '17.0' | '16.0' | '15.0' | '14.0' | '12.0' | '4.0'. Optional. Use when msbuildLocationMethod = version. MSBuild Version. Default: latest.
    #msbuildArchitecture: 'x86' # 'x86' | 'x64'. Optional. Use when msbuildLocationMethod = version. MSBuild Architecture. Default: x86.
    #msbuildLocation: # string. Optional. Use when msbuildLocationMethod = location. Path to MSBuild. 
    #platform: # string. Platform. 
    #configuration: # string. Configuration. 
    #msbuildArguments: # string. MSBuild Arguments. 
    #clean: false # boolean. Clean. Default: false.
  # Advanced
    #maximumCpuCount: false # boolean. Build in Parallel. Default: false.
    #restoreNugetPackages: false # boolean. Restore NuGet Packages. Default: false.
    #logProjectEvents: false # boolean. Record Project Details. Default: false.
    #createLogFile: false # boolean. Create Log File. Default: false.
    #logFileVerbosity: 'normal' # 'quiet' | 'minimal' | 'normal' | 'detailed' | 'diagnostic'. Optional. Use when createLogFile = true. Log File Verbosity. Default: normal.
# MSBuild v1
# Build with MSBuild.
- task: MSBuild@1
  inputs:
    solution: '**/*.sln' # string. Required. Project. Default: **/*.sln.
    #msbuildLocationMethod: 'version' # 'version' | 'location'. MSBuild. Default: version.
    #msbuildVersion: 'latest' # 'latest' | '16.0' | '15.0' | '14.0' | '12.0' | '4.0'. Optional. Use when msbuildLocationMethod = version. MSBuild Version. Default: latest.
    #msbuildArchitecture: 'x86' # 'x86' | 'x64'. Optional. Use when msbuildLocationMethod = version. MSBuild Architecture. Default: x86.
    #msbuildLocation: # string. Optional. Use when msbuildLocationMethod = location. Path to MSBuild. 
    #platform: # string. Platform. 
    #configuration: # string. Configuration. 
    #msbuildArguments: # string. MSBuild Arguments. 
    #clean: false # boolean. Clean. Default: false.
  # Advanced
    #maximumCpuCount: false # boolean. Build in Parallel. Default: false.
    #restoreNugetPackages: false # boolean. Restore NuGet Packages. Default: false.
    #logProjectEvents: false # boolean. Record Project Details. Default: false.
    #createLogFile: false # boolean. Create Log File. Default: false.
    #logFileVerbosity: 'normal' # 'quiet' | 'minimal' | 'normal' | 'detailed' | 'diagnostic'. Optional. Use when createLogFile = true. Log File Verbosity. Default: normal.
# MSBuild v1
# Build with MSBuild.
- task: MSBuild@1
  inputs:
    solution: '**/*.sln' # string. Required. Project. Default: **/*.sln.
    #msbuildLocationMethod: 'version' # 'version' | 'location'. MSBuild. Default: version.
    #msbuildVersion: 'latest' # 'latest' | '16.0' | '15.0' | '14.0' | '12.0' | '4.0'. Optional. Use when msbuildLocationMethod = version. MSBuild Version. Default: latest.
    #msbuildArchitecture: 'x86' # 'x86' | 'x64'. Optional. Use when msbuildLocationMethod = version. MSBuild Architecture. Default: x86.
    #msbuildLocation: # string. Optional. Use when msbuildLocationMethod = location. Path to MSBuild. 
    #platform: # string. Platform. 
    #configuration: # string. Configuration. 
    #msbuildArguments: # string. MSBuild Arguments. 
    #clean: false # boolean. Clean. Default: false.
  # Advanced
    #maximumCpuCount: false # boolean. Build in Parallel. Default: false.
    #restoreNugetPackages: false # boolean. Restore NuGet Packages. Default: false.
    #logProjectEvents: false # boolean. Record Project Details. Default: false.
    #createLogFile: false # boolean. Create Log File. Default: false.

Entradas

solution - Proyecto
string. Obligatorio. Valor predeterminado: **/*.sln.

Si desea compilar varios proyectos, especifique criterios de búsqueda. Puede usar un carácter comodín de carpeta única (*) y caracteres comodín recursivos (**). Por ejemplo, **.*proj busca todos los archivos de proyecto de MSBuild (.*proj) en todos los subdirectorios.

Asegúrese de que esta canalización de compilación descarga los proyectos que especifique. En la pestaña Repositorio:

  • Si usa TFVC, asegúrese de que el proyecto es un elemento secundario de una de las asignaciones de la pestaña Repositorio.
  • Si usa Git, asegúrese de que el proyecto se encuentra en el repositorio Git, en una rama que esté compilando.

Sugerencia

Si va a compilar una solución, se recomienda usar la tarea de compilación de Visual Studio en lugar de la tarea de MSBuild.


msbuildLocationMethod - Msbuild
string. Valores permitidos: version, location (Especificar ubicación). Valor predeterminado: version.


msbuildVersion - Versión de MSBuild
string. Opcional. Use cuando msbuildLocationMethod = version. Valores permitidos: latest, 17.0 (MSBuild 17.0), 16.0 (MSBuild 16.0), 15.0 (MSBuild 15.0), 14.0 (MSBuild 14.0), 12.0 (MSBuild 12.0), 4.0 (MSBuild 4.0). Valor predeterminado: latest.

Si no se encuentra la versión preferida, se usa la versión más reciente que se encuentra en su lugar. En un agente de macOS, xbuild (Mono) se usa si la versión es inferior a 15.0.


msbuildVersion - Versión de MSBuild
string. Opcional. Use cuando msbuildLocationMethod = version. Valores permitidos: latest, 16.0 (MSBuild 16.0), 15.0 (MSBuild 15.0), 14.0 (MSBuild 14.0), 12.0 (MSBuild 12.0), 4.0 (MSBuild 4.0). Valor predeterminado: latest.

Si no se encuentra la versión preferida, se usa la versión más reciente que se encuentra en su lugar. En un agente de macOS, xbuild (Mono) se usa si la versión es inferior a 15.0.


msbuildArchitecture - Arquitectura de MSBuild
string. Opcional. Use cuando msbuildLocationMethod = version. Valores permitidos: x86 (MSBuild x86), x64 (MSBuild x64). Valor predeterminado: x86.

Proporciona la arquitectura de MSBuild (x86, x64) que se va a ejecutar.


msbuildLocation - Ruta de acceso a MSBuild
string. Opcional. Use cuando msbuildLocationMethod = location.

Proporciona la ruta de acceso a MSBuild.


platform - Plataforma
string.

Sugerencia

  • Si tiene como destino un archivo de proyecto de MSBuild (.*proj) en lugar de una solución, especifique AnyCPU (sin espacio en blanco).
  • Declare una variable de compilación como, por BuildPlatform ejemplo, en la pestaña Variables (seleccionando Allow en tiempo de cola) y haga referencia a ella aquí como $(BuildPlatform). De este modo, puede modificar la plataforma al poner en cola la compilación y habilitar la creación de varias configuraciones.

configuration - Configuración
string.

Sugerencia

Declare una variable de compilación como, por BuildConfiguration ejemplo, en la pestaña Variables (seleccionando Allow en tiempo de cola) y haga referencia a ella aquí como $(BuildConfiguration). De este modo, puede modificar la plataforma al poner en cola la compilación y habilitar la creación de varias configuraciones.


msbuildArguments - Argumentos de MSBuild
string.

Especifica argumentos adicionales pasados a MSBuild (en Windows) y xbuild (en macOS).


clean - Limpio
boolean. Valor predeterminado: false.

False Establézcalo en si desea realizar esta compilación incremental. Esta configuración puede reducir el tiempo de compilación, especialmente si el código base es grande. Esta opción no tiene ningún efecto práctico a menos que también establezca el Clean repositorio en False. True Establézcalo en si desea recompilar todo el código de los proyectos de código. Esto equivale al argumento de MSBuild /target:clean. Para más información, consulte opciones de repositorio.


maximumCpuCount - Compilación en paralelo
boolean. Valor predeterminado: false.

Si la configuración de destino de MSBuild es compatible con la compilación en paralelo, puede comprobar esta entrada para pasar el /m modificador a MSBuild (solo Windows). Si la configuración de destino no es compatible con la compilación en paralelo, la comprobación de esta opción puede provocar file-in-use errores o errores de compilación intermitentes o incoherentes.


restoreNugetPackages - Restauración de paquetes NuGet
boolean. Valor predeterminado: false.

Esta opción está en desuso. Para restaurar paquetes NuGet, agregue una tarea de NuGet antes de la compilación.


logProjectEvents - Registrar detalles del proyecto
boolean. Valor predeterminado: false.

Opcionalmente, registra los detalles de escala de tiempo de cada proyecto (solo Windows).


createLogFile - Crear archivo de registro
boolean. Valor predeterminado: false.

Opcionalmente, crea un archivo de registro (solo Windows).


logFileVerbosity - Detalle del archivo de registro
string. Opcional. Use cuando createLogFile = true. Valores permitidos: quiet, minimal, normal, detailed, . diagnostic Valor predeterminado: normal.

Especifica el nivel de detalle del archivo de registro.


Opciones de control de tareas

Todas las tareas tienen opciones de control además de las entradas de tareas. Para obtener más información, vea Opciones de control y propiedades de tareas comunes.

Variables de salida

Ninguno.

Comentarios

¿Debo usar la tarea Compilación de Visual Studio o la tarea de MSBuild?

Si va a compilar una solución, en la mayoría de los casos debe usar la tarea Compilación de Visual Studio. Esta tarea se realiza automáticamente:

  • Establece la propiedad /p:VisualStudioVersion para usted. Esto obliga a MSBuild a usar un conjunto determinado de destinos que aumentan la probabilidad de una compilación correcta.
  • Especifica el argumento de versión de MSBuild.

En algunos casos, es posible que tenga que usar la MSBuild tarea. Por ejemplo, debe usarla si va a compilar proyectos de código aparte de una solución.

¿Dónde puedo obtener más información sobre MSBuild?

Referencia de MSBuild

Referencia de la línea de comandos de MSBuild

¿Cómo se crean varias configuraciones para varias plataformas?

  1. En la pestaña Variables, asegúrese de que tiene variables definidas para las configuraciones y plataformas. Para especificar varios valores, separe con comas. Por ejemplo:

    • En el caso de una aplicación .NET, puede especificar BuildConfiguration con valores de depuración y versión, y podría especificar BuildPlatform con cualquier valor de CPU.
    • Para una aplicación de C++, puede especificar BuildConfiguration con valores de depuración y versión, y podría especificar BuildPlatform con cualquier valor x86 y x64.
  2. En la pestaña Opciones, seleccione MultiConfiguration y especifique , Multipliersseparados por comas. Por ejemplo: BuildConfiguration, BuildPlatform seleccione Parallel si desea distribuir los trabajos (uno para cada combinación de valores) a varios agentes en paralelo si están disponibles.

  3. En la pestaña Compilar, seleccione este paso y especifique los Platform argumentos y Configuration . Por ejemplo:

    • Plataforma: $(BuildPlatform)
    • Configuración: $(BuildConfiguration)

¿Puedo compilar archivos TFSBuild.proj?

No se pueden compilar TFSBuild.proj archivos. Estos tipos de archivos se generan mediante TFS 2005 y TFS 2008. Estos archivos contienen tareas y los destinos solo se admiten mediante compilaciones XAML.

Solución de problemas

En esta sección se proporcionan sugerencias para solucionar problemas comunes que un usuario podría encontrar al usar la MSBuild tarea.

Error de compilación con el siguiente mensaje: Error interno al ejecutar MSBuild

Causas posibles
  • Cambio en la versión de MSBuild.
  • Problemas con una extensión de terceros.
  • Nuevas actualizaciones de Visual Studio que pueden provocar la falta de ensamblados en el agente de compilación.
  • Se han movido o eliminado algunos de los paquetes NuGet necesarios.
Sugerencias de solución de problemas
Ejecución de la canalización con diagnósticos para recuperar registros detallados

Una de las opciones disponibles para diagnosticar el problema es echar un vistazo a los registros generados. Para ver los registros de canalización, seleccione la tarea y el trabajo adecuados en el resumen de la ejecución de canalización.

Para obtener los registros de la ejecución de la canalización, obtenga registros para diagnosticar problemas.

También puede configurar y descargar un registro detallado personalizado que le ayude con la solución de problemas:

Además de los registros de diagnóstico de canalización, también puede comprobar estos otros tipos de registros que contienen más información para ayudarle a depurar y resolver el problema:

Intento de reproducir el error localmente

Si usa un agente de compilación hospedado, es posible que quiera intentar reproducir el error localmente. Esto le ayudará a determinar si el error se debe al agente de compilación o a la tarea de compilación.

Ejecute el mismo MSBuild comando en el equipo local con los mismos argumentos. Consulte el comando de MSBuild como referencia.

Sugerencia

Si puede reproducir el problema en el equipo local, el siguiente paso es investigar el problema de MSBuild.

Obtenga más información sobre los agentes hospedados por Microsoft.

Para configurar su propio agente autohospedado y ejecutar los trabajos de compilación:

¿Qué más puedo hacer?

Algunos de los errores de MSBuild se deben a un cambio en Visual Studio, por lo que puede buscar en Visual Studio Developer Community para ver si se ha informado de este problema. También agradecemos sus preguntas, sugerencias y comentarios.

Requisitos

Requisito Descripción
Tipos de canalización YAML, compilación clásica
Se ejecuta en Agente, DeploymentGroup
Peticiones Los agentes autohospedados deben tener funcionalidades que coincidan con las siguientes demandas para ejecutar trabajos que usan esta tarea: msbuild
Capabilities Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo.
Restricciones de comandos Any
Variables que se pueden establecer Any
Versión del agente 1.95.0 o superior
Categoría de la tarea: Build

Consulte también