Partilhar via


MSBuild@1 - Tarefa MSBuild v1

Use esta tarefa para criar com 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.

Insumos

solution - Projeto
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 procura todos os arquivos de projeto MSBuild (.*proj) em todos os subdiretórios.

Certifique-se de que os projetos especificados sejam baixados por esse pipeline de compilação. Na guia Repositório:

  • Se você usar TFVC, certifique-se de que o projeto é filho de um dos mapeamentos na guia Repositório.
  • Se você usa o Git, certifique-se de que o projeto ou projeto esteja no seu repositório Git, em uma ramificação que você está criando.

Sugestão

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

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


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 preferida não puder ser encontrada, a versão mais recente encontrada será usada. Em um agente do macOS, xbuild (Mono) é 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) para ser executada.


msbuildLocation - caminho para o MSBuild
string. Opcional. Use quando msbuildLocationMethod = location.

Fornece o caminho para o MSBuild.


platform - Plataforma
string.

Sugestão

  • Se você estiver direcionando um arquivo de projeto MSBuild (.*proj) em vez de uma solução, especifique AnyCPU (sem espaço em branco).
  • Declare uma variável de compilação, como BuildPlatform na guia Variáveis (selecionando Allow em Hora da Fila) e faça referência a ela aqui como $(BuildPlatform). Dessa forma, você pode modificar a plataforma quando enfileirar a compilação e habilitar a criação de várias configurações.

configuration - de configuração
string.

Sugestão

Declare uma variável de compilação, como BuildConfiguration na guia Variáveis (selecionando Allow em Hora da Fila) e faça referência a ela aqui como $(BuildConfiguration). Dessa forma, você pode modificar a plataforma quando enfileirar a compilação 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 quiser fazer disso uma compilação incremental. Essa configuração pode reduzir o tempo de compilação, especialmente se a base de código for grande. Esta 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 quiser reconstruir todo o código nos projetos de código. Isso é equivalente ao argumento MSBuild /target:clean. Para obter mais informações, consulte opções de recompra


maximumCpuCount - Construir em paralelo
boolean. Valor padrão: false.

Se a configuração de destino do MSBuild for compatível com a construçã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 construção em paralelo, marcar essa opção pode fazer com que a compilação resulte em erros de file-in-use ou falhas de compilação 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 da compilação.


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

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


createLogFile - Criar arquivo de log
boolean. Valor padrão: false.

Opcionalmente, cria um arquivo de log (somente Windows).


logFileVerbosity - de Verbosidade 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 controlo de tarefas

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

Variáveis de saída

Nenhum.

Observações

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

Se você estiver criando uma solução, na maioria dos casos, você deve usar a tarefa 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 uma compilação bem-sucedida.
  • 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

de referência de linha de comando MSBuild

Como faço para 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 liberaçã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, separados por vírgulas. Por exemplo: BuildConfiguration, BuildPlatform Selecione Parallel se quiser distribuir os trabalhos (um para cada combinação de valores) para vários agentes em paralelo, se 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 construir arquivos TFSBuild.proj?

Não é possível criar ficheiros TFSBuild.proj. Esses tipos de arquivos são gerados por TFS 2005 e TFS 2008. Esses arquivos contêm tarefas e os destinos são suportados apenas usando compilações XAML.

Solução de problemas

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

A compilação falhou com o seguinte erro: Ocorreu uma falha interna durante a execução do MSBuild

Causas possíveis
  • Alteração na versão do MSBuild.
  • Problemas com uma extensão de terceiros.
  • Novas atualizações para o Visual Studio que podem causar assemblies ausentes no agente de compilação.
  • Moveu ou excluiu alguns dos pacotes NuGet necessários.
Sugestões de solução de problemas
Execute 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 do 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:

Tente reproduzir o erro localmente

Se você estiver usando um agente de compilação hospedado, convém tentar reproduzir o erro localmente. Isso ajudará você a restringir se a falha é o resultado do agente de compilação ou da tarefa de compilação.

Execute o mesmo comando MSBuild em sua máquina local usando os mesmos argumentos. Confira de comando do MSBuild para referência.

Sugestão

Se você puder reproduzir o problema em sua máquina local, sua próxima etapa é investigar o problema de do MSBuild.

Saiba mais sobre agentes hospedados pela Microsoft.

Para configurar seu próprio agente auto-hospedado e executar os trabalhos de compilaçã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 agradecemos suas perguntas, sugestões e comentários.

Requerimentos

Requisito Descrição
Tipos de pipeline YAML, construção clássica
Funciona em Agente, DeploymentGroup
Exigências Os agentes auto-hospedados devem ter recursos que correspondam às seguintes demandas executar trabalhos que usam essa tarefa: msbuild
Capacidades Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes no trabalho.
Restrições de comando Qualquer
Variáveis configuráveis Qualquer
Versão do agente 1.95.0 ou superior
Categoria de tarefa Construir

Ver também

  • de tarefas do Visual Studio Build