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 (seleccionandoAllow
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 la línea de comandos de MSBuild
¿Cómo se crean varias configuraciones para varias plataformas?
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 especificarBuildPlatform
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 especificarBuildPlatform
con cualquier valor x86 y x64.
- En el caso de una aplicación .NET, puede especificar
En la pestaña Opciones, seleccione
MultiConfiguration
y especifique ,Multipliers
separados por comas. Por ejemplo:BuildConfiguration, BuildPlatform
seleccioneParallel
si desea distribuir los trabajos (uno para cada combinación de valores) a varios agentes en paralelo si están disponibles.En la pestaña Compilar, seleccione este paso y especifique los
Platform
argumentos yConfiguration
. Por ejemplo:- Plataforma:
$(BuildPlatform)
- Configuración:
$(BuildConfiguration)
- Plataforma:
¿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
- Intento de reproducir el error localmente
- ¿Qué más puedo hacer?
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:
- Registros de diagnóstico de trabajo
- Registros de diagnóstico del agente
- Otros registros (entorno y funcionalidades)
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 |