Compartilhar via


MSBuild@1 – tarefa MSBuild v1

Use essa tarefa para compilar com o MSBuild.

Observação

Para obter mais informações sobre o MSBuild, consulte Como o MSBuild cria projetos.

Sintaxe

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

Entradas

solution - project
string. Obrigatório Valor padrão: **/*.sln.

Se você quiser criar 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 ou projeto está em seu repositório Git, em um branch que você está criando.

Dica

Se você estiver criando uma solução, recomendamos que você use a tarefa de build do Visual Studio em vez da tarefa MSBuild.

Para obter informações sobre as diferenças entre o MSBuild e o build do Visual Studio, consulte builds do Visual Studio vs. builds MSBuild.exe.


msbuildLocationMethod - do MSBuild
string. Valores permitidos: version, location (Especificar Local). Valor padrão: version.


msbuildVersion - de 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.


msbuildArchitecture - de 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 o msbuild
string. Opcional. Use quando msbuildLocationMethod = location.

Fornece o caminho para o MSBuild.


platform - Plataforma
string.

Dica

  • Se você estiver direcionando um arquivo msbuild project (.*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 referencie-a aqui como $(BuildPlatform). Dessa forma, você pode modificar a plataforma ao enfileirar o build e habilitar a criação de várias configurações.

de Configuração do configuration -
string.

Dica

Declare uma variável de build, como BuildConfiguration na guia Variáveis (selecionando Allow em Tempo de Fila) e referencie-a 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 - Limpar
boolean. Valor padrão: false.

Defina como False se você quiser fazer disso um build incremental. Essa configuração pode reduzir o tempo de build, 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 repositório Clean como False. Defina como True se você quiser recompilar todo o código nos projetos de código. Isso é equivalente ao argumento /target:clean MSBuild. Para obter mais informações, consulte opções de repositório


compilação maximumCpuCount - em paralela
boolean. Valor padrão: false.

Se a configuração de destino do MSBuild for compatível com a criação em paralelo, você poderá verificar 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, verificar essa opção poderá fazer com que o build resulte em erros de file-in-use ou falhas de build intermitentes ou inconsistentes.


restoreNugetPackages - restaurar pacotes NuGet
boolean. Valor padrão: false.

Esta opção foi preterida. Para restaurar pacotes NuGet, adicione uma tarefa NuGet antes do build.


de detalhes do projeto de registro de logProjectEvents -
boolean. Valor padrão: false.

Opcionalmente, registra detalhes da linha do tempo para cada projeto (somente Windows).


createLogFile - criar de 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 de tarefa

Todas as tarefas têm opções de controle além das suas entradas de tarefas. Para obter mais informações, consulte as opções de Controle de e as propriedades comuns da tarefa.

Variáveis de saída

Nenhum.

Observações

Devo usar a tarefa Build do Visual Studio ou a tarefa MSBuild?

Se você estiver criando uma solução, na maioria dos casos, deverá usar a tarefa Do Visual Studio Build. Esta 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 um build bem-sucedido.
  • Especifica o argumento de versão do MSBuild.

Em alguns casos, talvez seja necessário usar a tarefa MSBuild. Por exemplo, você deve usá-lo se estiver criando 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 criar 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 especificar BuildPlatform com qualquer valor de CPU.
    • Para um aplicativo C++, você pode especificar BuildConfiguration com valores de depuração e versão e 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ê quiser 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 argumentos Platform e Configuration. Por exemplo:

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

Posso criar arquivos TFSBuild.proj?

Não é possível criar arquivos TFSBuild.proj. 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.

Resolução de problemas

Esta seção fornece dicas de solução de problemas comuns que um usuário pode encontrar ao usar a tarefa MSBuild.

Falha no build com o seguinte erro: ocorreu uma falha interna ao executar o 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 build.
  • 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 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 verificar esses outros tipos de logs que contêm mais informações para ajudá-lo a depurar e resolver o problema:

  • logs de diagnóstico do Worker
  • logs de diagnóstico do agente de
  • Outros logs (Ambiente e recursos)
Tente reproduzir o erro localmente

Se você estiver usando um agente de build hospedado, talvez queira tentar reproduzir o erro localmente. Isso ajudará você a restringir se a falha é o resultado do agente de build ou da tarefa de build.

Execute o mesmo comando MSBuild em seu computador local usando os mesmos argumentos. Confira de comando do MSBuild para referência.

Dica

Se você puder reproduzir o problema em seu computador local, a próxima etapa será investigar o problema de do MSBuild.

Saiba mais sobre agentes hospedados da Microsoft.

Para configurar seu próprio agente auto-hospedado e executar os trabalhos de build:

O que mais posso fazer?

Alguns dos erros do MSBuild são causados por uma alteração no Visual Studio para que você possa pesquisar em da Comunidade de Desenvolvedores do Visual Studio para ver se esse problema foi relatado. Também damos as boas-vindas às suas perguntas, sugestões e comentários.

Requisitos

Requisito Descrição
Tipos de pipeline YAML, build clássico
Execuções em Agente, DeploymentGroup
de demandas Os agentes auto-hospedados devem ter recursos que correspondam às seguintes demandas de para executar trabalhos que usam esta tarefa: msbuild
recursos Essa tarefa não atende a nenhuma demanda para tarefas subsequentes no trabalho.
restrições de comando Qualquer
variáveis settable Qualquer
Versão do agente 1.95.0 ou superior
Categoria de tarefa Construir

Consulte também