Compartilhar via


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 (selecionando Allow 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 do MSBuild

Referência de linha de comando do MSBuild

Como faço para compilar várias configurações para várias plataformas?

  1. 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 especificar BuildPlatform com qualquer valor de CPU.
    • Para um aplicativo C++, você pode especificar BuildConfiguration com valores de depuração e versão e pode especificar BuildPlatform com quaisquer valores x86 e x64.
  2. Na guia Opções, selecione MultiConfiguration e especifique o Multipliers, separado por vírgulas. Por exemplo: BuildConfiguration, BuildPlatform selecione Parallel se você deseja distribuir os trabalhos (um para cada combinação de valores) para vários agentes em paralelo se eles estiverem disponíveis.

  3. Na guia Compilar, selecione esta etapa e especifique os Platform argumentos e Configuration . Por exemplo:

    • Plataforma: $(BuildPlatform)
    • Configuração: $(BuildConfiguration)

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

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:

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:

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

Confira também