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 (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.
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 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, podría 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++, podría 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, podría especificar
En la pestaña Opciones, seleccione
MultiConfiguration
y especifique elMultipliers
, separados por comas. Por ejemplo:BuildConfiguration, BuildPlatform
SeleccionarParallel
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 argumentos
Platform
yConfiguration
. Por ejemplo:- Plataforma:
$(BuildPlatform)
- Configuración:
$(BuildConfiguration)
- Plataforma:
¿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
- Ejecutar la canalización con diagnósticos para recuperar registros detallados
- Intentar 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 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:
- registros de diagnóstico de trabajo de
- registros de diagnóstico del agente de
- otros registros (entorno y funcionalidades)
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 |