MSBuild@1 – tarefa MSBuild v1

Utilize esta 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ório. Valor predefinido: **/*.sln.

Se quiser criar vários projetos, especifique critérios de pesquisa. Pode utilizar um caráter universal de pasta única (*) e carateres universais recursivos (**). Por exemplo, **.*proj procura todos os ficheiros do projeto MSBuild (.*proj) em todos os subdiretórios.

Certifique-se de que os projetos que especificar são transferidos por este pipeline de compilação. No separador Repositório:

  • Se utilizar o TFVC, certifique-se de que o projeto é subordinado de um dos mapeamentos no separador Repositório.
  • Se utilizar o Git, certifique-se de que o projeto ou projeto está no seu repositório git, num ramo que está a criar.

Dica

Se estiver a criar uma solução, recomendamos que utilize a tarefa de compilação do Visual Studio em vez da tarefa MSBuild.


msbuildLocationMethod - MSBuild
string. Valores permitidos: version, location (Especificar Localização). Valor predefinido: version.


msbuildVersion - Versão MSBuild
string. Opcional. Utilize 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 predefinido: latest.

Se não for possível encontrar a versão preferencial, é utilizada a versão mais recente encontrada. Num agente macOS, xbuild (Mono) é utilizado se a versão for inferior 15.0a .


msbuildVersion - Versão MSBuild
string. Opcional. Utilize 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 predefinido: latest.

Se não for possível encontrar a versão preferencial, é utilizada a versão mais recente encontrada. Num agente macOS, xbuild (Mono) é utilizado se a versão for inferior 15.0a .


msbuildArchitecture - Arquitetura MSBuild
string. Opcional. Utilize quando msbuildLocationMethod = version. Valores permitidos: x86 (MSBuild x86), x64 (MSBuild x64). Valor predefinido: x86.

Fornece a arquitetura MSBuild (x86, x64) para execução.


msbuildLocation - Caminho para MSBuild
string. Opcional. Utilize quando msbuildLocationMethod = location.

Fornece o caminho para MSBuild.


platform - Plataforma
string.

Dica

  • Se estiver a direcionar um ficheiro 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 no separador Variáveis (selecionar em Hora da Fila) e veja-a Allow aqui como $(BuildPlatform). Desta forma, pode modificar a plataforma quando coloca em fila a compilação e ativa a criação de múltiplas configurações.

configuration - Configuração
string.

Dica

Declare uma variável de compilação, como BuildConfiguration no separador Variáveis (selecionar em Hora da Fila) e veja-a Allow aqui como $(BuildConfiguration). Desta forma, pode modificar a plataforma quando coloca em fila a compilação e ativa a criação de múltiplas configurações.


msbuildArguments - Argumentos MSBuild
string.

Especifica argumentos adicionais transmitidos para MSBuild (no Windows) e xbuild (no macOS).


clean - Limpar
boolean. Valor predefinido: false.

Defina como False se quiser tornar esta compilação incremental. Esta definição poderá reduzir o tempo de compilação, especialmente se a base de código for grande. Esta opção não tem qualquer efeito prático, a menos que também defina o Clean repositório como False. Defina como True se pretender reconstruir todo o código nos projetos de código. Isto é equivalente ao argumento MSBuild /target:clean . Para obter mais informações, veja opções de repositório


maximumCpuCount - Compilar em Paralelo
boolean. Valor predefinido: false.

Se a configuração de destino MSBuild for compatível com a criação em paralelo, pode verificar esta entrada para passar o /m comutador para MSBuild (apenas Windows). Se a configuração de destino não for compatível com a criação em paralelo, verificar esta opção pode fazer com que a compilação resulte em file-in-use erros ou falhas de compilação intermitentes ou inconsistentes.


restoreNugetPackages - Restaurar Pacotes NuGet
boolean. Valor predefinido: false.

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


logProjectEvents - Gravar Detalhes do Projeto
boolean. Valor predefinido: false.

Opcionalmente, regista os detalhes da linha cronológica para cada projeto (apenas Windows).


createLogFile - Criar Ficheiro de Registo
boolean. Valor predefinido: false.

Opcionalmente, cria um ficheiro de registo (apenas o Windows).


logFileVerbosity - Verbosidade do Ficheiro de Registo
string. Opcional. Utilize quando createLogFile = true. Valores permitidos: quiet, minimal, , normaldetailed, diagnostic. Valor predefinido: normal.

Especifica a verbosidade do ficheiro de registo.


Opções de controlo de tarefas

Todas as tarefas têm opções de controlo para além das entradas de tarefas. Para obter mais informações, veja Opções de controlo e propriedades de tarefas comuns.

Variáveis de saída

Nenhum.

Observações

Devo utilizar a tarefa de Compilação do Visual Studio ou a tarefa MSBuild?

Se estiver a criar uma solução, na maioria dos casos deve utilizar a tarefa Compilação do Visual Studio. Esta tarefa é automaticamente:

  • Define a /p:VisualStudioVersion propriedade por si. Isto força a MSBuild a utilizar um conjunto específico de destinos que aumentam a probabilidade de uma compilação bem-sucedida.
  • Especifica o argumento de versão MSBuild.

Em alguns casos, poderá ter de utilizar a MSBuild tarefa. Por exemplo, deve utilizá-lo se estiver a criar projetos de código para além de uma solução.

Onde posso saber mais sobre o MSBuild?

Referência msBuild

Referência da linha de comandos MSBuild

Como devo proceder para criar várias configurações para várias plataformas?

  1. No separador Variáveis, certifique-se de que tem variáveis definidas para as suas configurações e plataformas. Para especificar múltiplos valores, separe-os com vírgulas. Por exemplo:

    • Para uma aplicação .NET, pode especificar BuildConfiguration com valores de depuração e lançamento e pode especificar BuildPlatform com qualquer valor de CPU.
    • Para uma aplicação C++, pode especificar BuildConfiguration com valores de depuração e lançamento e pode especificar BuildPlatform com valores x86 e x64.
  2. No separador Opções, selecione MultiConfiguration e especifique o Multipliers, separado por vírgulas. Por exemplo: BuildConfiguration, BuildPlatform selecione Parallel se pretende distribuir as tarefas (uma para cada combinação de valores) para vários agentes em paralelo, se estiverem disponíveis.

  3. No separador Compilar, selecione este passo e especifique os Platform argumentos e Configuration . Por exemplo:

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

Posso criar ficheiros TFSBuild.proj?

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

Resolução de problemas

Esta secção fornece sugestões de resolução de problemas para problemas comuns que um utilizador pode encontrar ao utilizar a MSBuild tarefa.

Falha na compilação com o seguinte erro: Ocorreu uma falha interna ao executar o 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 assemblagens em falta no agente de compilação.
  • Moveu ou eliminou alguns dos pacotes NuGet necessários.
Sugestões de resolução de problemas
Executar o pipeline com diagnósticos para obter registos detalhados

Uma das opções disponíveis para diagnosticar o problema é ver os registos gerados. Pode ver os registos do pipeline ao selecionar a tarefa e a tarefa adequadas no resumo da execução do pipeline.

Para obter os registos da execução do pipeline , obtenha registos para diagnosticar problemas

Também pode configurar e transferir um registo verboso personalizado para ajudar na resolução de problemas:

Além dos registos de diagnóstico do pipeline, também pode verificar estes outros tipos de registos que contêm mais informações para o ajudar a depurar e resolver o problema:

Tente reproduzir o erro localmente

Se estiver a utilizar um agente de compilação alojado, poderá tentar reproduzir o erro localmente. Isto irá ajudá-lo a determinar se a falha é o resultado do agente de compilação ou da tarefa de compilação.

Execute o mesmo MSBuild comando no computador local com os mesmos argumentos. Consulte o comando MSBuild para referência.

Dica

Se conseguir reproduzir o problema no computador local, o próximo passo será investigar o problema do MSBuild .

Saiba mais sobre os agentes alojados da Microsoft.

Para configurar o seu próprio agente autoalojado e executar as tarefas de compilação:

O que mais posso fazer?

Alguns dos erros do MSBuild são causados por uma alteração no Visual Studio para que possa procurar na Comunidade de Programadores do Visual Studio para ver se este problema foi comunicado. Também agradecemos as suas perguntas, sugestões e comentários.

Requisitos

Requisito Description
Tipos de pipeline YAML, Compilação clássica
É executado em Agent, DeploymentGroup
Exigências Os agentes autoalojados têm de ter capacidades que correspondam às seguintes exigências para executar tarefas que utilizem esta tarefa: msbuild
Capacidades Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes na tarefa.
Restrições de comandos Qualquer
Variáveis de definição Qualquer
Versão do agente 1.95.0 ou superior
Categoria da tarefa Compilação

Ver também