tarefa MSBuild@1 - MSBuild v1
Use essa tarefa para compilar com o 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
- Projeto
string
. Obrigatórios. Valor padrão: **/*.sln
.
Se você quiser compilar vários projetos, especifique os critérios de pesquisa. Você pode usar um curinga de pasta única (*) e curingas recursivos (**). Por exemplo, **.*proj
pesquisa todos os arquivos de projeto do MSBuild (.*proj
) em todos os subdiretórios.
Verifique se os projetos especificados são baixados por este pipeline de build. Na guia Repositório:
- Se você usar o TFVC, verifique se o projeto é filho de um dos mapeamentos na guia Repositório.
- Se você usar o Git, verifique se o projeto está no repositório Git, em uma ramificação que esteja compilando.
Dica
Se você estiver criando uma solução, recomendamos que você use a tarefa de build do Visual Studio em vez da tarefa MSBuild.
msbuildLocationMethod
- Msbuild
string
. Valores permitidos: version
, location
(Especificar Local). Valor padrão: version
.
msbuildVersion
- Versão do MSBuild
string
. Opcional. Use quando 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 padrão: latest
.
Se a versão preferencial não puder ser encontrada, a versão mais recente encontrada será usada. Em um agente macOS, xbuild
(Mono) será usado se a versão for inferior a 15.0
.
msbuildVersion
- Versão do MSBuild
string
. Opcional. Use quando 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 padrão: latest
.
Se a versão preferencial não puder ser encontrada, a versão mais recente encontrada será usada. Em um agente macOS, xbuild
(Mono) será usado se a versão for inferior a 15.0
.
msbuildArchitecture
- Arquitetura do MSBuild
string
. Opcional. Use quando msbuildLocationMethod = version
. Valores permitidos: x86
(MSBuild x86) x64
(MSBuild x64). Valor padrão: x86
.
Fornece a arquitetura do MSBuild (x86, x64) a ser executada.
msbuildLocation
- Caminho para MSBuild
string
. Opcional. Use quando msbuildLocationMethod = location
.
Fornece o caminho para o MSBuild.
platform
- Plataforma
string
.
Dica
- Se você estiver direcionando um arquivo de projeto do MSBuild (.*proj) em vez de uma solução, especifique
AnyCPU
(sem espaço em branco). - Declare uma variável de build, como
BuildPlatform
na guia Variáveis (selecionandoAllow
em Tempo de Fila) e faça referência aqui como$(BuildPlatform)
. Dessa forma, você pode modificar a plataforma ao enfileirar o build e habilitar a criação de várias configurações.
configuration
- Configuração
string
.
Dica
Declare uma variável de build, como BuildConfiguration
na guia Variáveis (selecionando Allow
em Tempo de Fila) e faça referência aqui como $(BuildConfiguration)
. Dessa forma, você pode modificar a plataforma ao enfileirar o build e habilitar a criação de várias configurações.
msbuildArguments
- Argumentos do MSBuild
string
.
Especifica argumentos adicionais passados para MSBuild (no Windows) e xbuild (no macOS).
clean
- Limpo
boolean
. Valor padrão: false
.
Defina como False
se você quiser tornar este um build incremental. Essa configuração pode reduzir o tempo de compilação, especialmente se a base de código for grande. Essa opção não tem efeito prático, a menos que você também defina o Clean
repositório como False
.
Defina como True
se você quiser recompilar todo o código nos projetos de código. Isso equivale ao argumento MSBuild /target:clean
.
Para obter mais informações, consulte opções de repositório
maximumCpuCount
- Compilar em Paralelo
boolean
. Valor padrão: false
.
Se a configuração de destino do MSBuild for compatível com a criação em paralelo, você poderá marcar essa entrada para passar a opção /m
para o MSBuild (somente Windows). Se a configuração de destino não for compatível com a criação em paralelo, a verificação dessa opção poderá fazer com que o build resulte em file-in-use
erros ou falhas de build intermitentes ou inconsistentes.
restoreNugetPackages
- Restaurar pacotes NuGet
boolean
. Valor padrão: false
.
Essa opção foi preterida. Para restaurar pacotes NuGet, adicione uma tarefa Do NuGet antes do build.
logProjectEvents
- Registrar detalhes do projeto
boolean
. Valor padrão: false
.
Opcionalmente, registra linha do tempo detalhes de cada projeto (somente Windows).
createLogFile
- Criar arquivo de log
boolean
. Valor padrão: false
.
Opcionalmente, cria um arquivo de log (somente Windows).
logFileVerbosity
- Verbosity do Arquivo de Log
string
. Opcional. Use quando createLogFile = true
. Valores permitidos: quiet
, , minimal
, normal
, detailed
, diagnostic
. Valor padrão: normal
.
Especifica a verbosidade do arquivo de log.
Opções de controle da tarefa
Todas as tarefas têm opções de controle além de suas entradas de tarefa. Para obter mais informações, consulte Opções de controle e propriedades comuns da tarefa.
Variáveis de saída
Nenhum.
Comentários
Devo usar a tarefa de compilação do Visual Studio ou o MSBuild?
Se você estiver compilando uma solução, na maioria dos casos, deverá usar a tarefa de Compilação do Visual Studio. Essa tarefa, automaticamente:
- Define a propriedade
/p:VisualStudioVersion
para você. Isso força o MSBuild a usar um conjunto específico de destinos que aumentam a probabilidade de uma compilação bem-sucedida. - Especifica o argumento de versão do MSBuild.
Em alguns casos, talvez seja necessário usar a MSBuild
tarefa. Por exemplo, você deverá usá-lo se estiver compilando projetos de código além de uma solução.
Onde posso saber mais sobre o MSBuild?
Referência de linha de comando do MSBuild
Como faço para compilar várias configurações para várias plataformas?
Na guia Variáveis, verifique se você tem variáveis definidas para suas configurações e plataformas. Para especificar vários valores, separe-os com vírgulas. Por exemplo:
- Para um aplicativo .NET, você pode especificar
BuildConfiguration
com valores de depuração e versão e pode especificarBuildPlatform
com qualquer valor de CPU. - Para um aplicativo C++, você pode especificar
BuildConfiguration
com valores de depuração e versão e pode especificarBuildPlatform
com quaisquer valores x86 e x64.
- Para um aplicativo .NET, você pode especificar
Na guia Opções, selecione
MultiConfiguration
e especifique oMultipliers
, separado por vírgulas. Por exemplo:BuildConfiguration, BuildPlatform
selecioneParallel
se você deseja distribuir os trabalhos (um para cada combinação de valores) para vários agentes em paralelo se eles estiverem disponíveis.Na guia Compilar, selecione esta etapa e especifique os
Platform
argumentos eConfiguration
. Por exemplo:- Plataforma:
$(BuildPlatform)
- Configuração:
$(BuildConfiguration)
- Plataforma:
Posso compilar arquivos TFSBuild.proj?
Você não pode criar TFSBuild.proj
arquivos. Esses tipos de arquivos são gerados por TFS 2005
e TFS 2008
. Esses arquivos contêm tarefas e os destinos têm suporte apenas usando builds XAML.
Solução de problemas
Esta seção fornece dicas de solução de problemas comuns que um usuário pode encontrar ao usar a MSBuild
tarefa.
Falha na compilação com o seguinte erro: ocorreu uma falha interna durante a execução do MSBuild
Possíveis causas
- Alteração na versão do MSBuild.
- Problemas com uma extensão de terceiros.
- Novas atualizações no Visual Studio que podem causar assemblies ausentes no agente de compilação.
- Moveu ou excluiu alguns dos pacotes NuGet necessários.
Sugestões para resolução de problemas
- Executar o pipeline com diagnóstico para recuperar logs detalhados
- Tente reproduzir o erro localmente
- O que mais posso fazer?
Executar o pipeline com diagnóstico para recuperar logs detalhados
Uma das opções disponíveis para diagnosticar o problema é dar uma olhada nos logs gerados. Você pode exibir os logs de pipeline selecionando a tarefa e o trabalho apropriados no resumo da execução do pipeline.
Para obter os logs da execução do pipeline, confira Obter logs para diagnosticar problemas
Você também pode configurar e baixar um log detalhado personalizado para ajudar na solução de problemas:
Além dos logs de diagnóstico de pipeline, você também pode marcar esses outros tipos de logs que contêm mais informações para ajudar você a depurar e resolver o problema:
- Logs de diagnóstico de trabalho
- Logs de diagnóstico do agente
- Outros logs (Ambiente e funcionalidades)
Tente reproduzir o erro localmente
Se você estiver usando um agente de compilação hospedado, talvez queira tentar reproduzir o erro localmente. Isso ajudará você a restringir se a falha é resultado do agente ou da tarefa de compilação.
Execute o mesmo MSBuild
comando em seu computador local usando os mesmos argumentos. Confira o comando MSBuild para referência.
Dica
Se você puder reproduzir o problema no computador local, a próxima etapa será investigar o problema do MSBuild.
Saiba mais sobre os agentes hospedados da Microsoft.
Para configurar seu agente auto-hospedado e executar os trabalhos de compilação:
- Agentes do Windows auto-hospedados
- Agentes do Linux auto-hospedados
- Agentes do macOS auto-hospedados
O que mais posso fazer?
Alguns dos erros do MSBuild são causados por uma alteração no Visual Studio, assim você pode pesquisar no Visual Studio Developer Community para ver se esse problema já foi relatado. Também aceitamos suas perguntas, sugestões e comentários.
Requisitos
Requisito | Descrição |
---|---|
Tipos de pipeline | YAML, build clássico |
É executado em | Agent, DeploymentGroup |
Demandas | Os agentes auto-hospedados devem ter recursos que correspondam às seguintes demandas para executar trabalhos que usam esta tarefa: msbuild |
Funcionalidades | Essa tarefa não atende a nenhuma demanda por tarefas subsequentes no trabalho. |
Restrições de comando | Qualquer |
Variáveis configuráveis | Qualquer |
Versão do agente | 1.95.0 ou superior |
Categoria da tarefa | Build |