Compartir a través de


MSBuild@1: tarea de MSBuild v1

Use esta tarea para compilar con MSBuild.

Sintaxis

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

Entradas

de project de solution -
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 del 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 o proyecto está en el repositorio de 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 - de MSBuild
string. Valores permitidos: version, location (Especificar ubicación). Valor predeterminado: version.


msbuildVersion - de la 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 en su lugar. En un agente de macOS, se usa xbuild (Mono) si la versión es inferior a 15.0.


msbuildVersion - de la 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 en su lugar. En un agente de macOS, se usa xbuild (Mono) si la versión es inferior a 15.0.


de arquitectura de MSBuild de msbuildArchitecture -
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 - Platform
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 BuildPlatform 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.

de configuración de configuration -
string.

Sugerencia

Declare una variable de compilación como BuildConfiguration 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 - Limpiar
boolean. Valor predeterminado: false.

Establézcalo en False si desea crear una 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 repositorio de Clean en False. Establezca en True si desea recompilar todo el código de los proyectos de código. Esto equivale al argumento /target:clean de MSBuild. Para obtener más información, consulte opciones de repositorio


compilación de maximumCpuCount - en 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 modificador de /m 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 errores de file-in-use o errores de compilación intermitentes o incoherentes.


restoreNugetPackages - restaurar 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.


registrar detalles del proyecto de logProjectEvents -
boolean. Valor predeterminado: false.

Opcionalmente, registra los detalles de la 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 sus entradas de tarea. Para obtener más información, consulte Opciones de control y propiedades de tareas comunes.

Variables de salida

Ninguno.

Observaciones

¿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 tarea MSBuild. Por ejemplo, debe usarlo 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 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, podría 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++, podría 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 el Multipliers, separados por comas. Por ejemplo: BuildConfiguration, BuildPlatform Seleccionar 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 argumentos Platform y Configuration. Por ejemplo:

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

¿Puedo compilar archivos TFSBuild.proj?

No se pueden compilar archivos TFSBuild.proj. 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 de .

Solución de problemas

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

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

Causas posibles
  • Cambie 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 ejecución de la canalización.

Para obtener los registros de la ejecución de la canalización Obtener registros para diagnosticar problemas

También puede configurar y descargar un registro detallado personalizado para ayudar 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:

Intente 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 reducir si el error es el resultado del agente de compilación o la tarea de compilación.

Ejecute el mismo comando MSBuild en la máquina local con los mismos argumentos. Consulte de comandos de MSBuild para obtener referencia.

Sugerencia

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

Obtenga más información sobre agentes hospedados de 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 para que pueda buscar en Visual Studio Developer Community para ver si se ha notificado 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
demandas Los agentes autohospedados deben tener funcionalidades que coincidan con los siguientes exigen ejecutar trabajos que usen esta tarea: msbuild
funcionalidades de Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo.
restricciones de comandos Cualquiera
variables settable Cualquiera
Versión del agente 1.95.0 o superior
Categoría de tarea Construir

Consulte también