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.0
a .
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.0
a .
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-aAllow
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
, , normal
detailed
, 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 da linha de comandos MSBuild
Como devo proceder para criar várias configurações para várias plataformas?
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 especificarBuildPlatform
com qualquer valor de CPU. - Para uma aplicação C++, pode especificar
BuildConfiguration
com valores de depuração e lançamento e pode especificarBuildPlatform
com valores x86 e x64.
- Para uma aplicação .NET, pode especificar
No separador Opções, selecione
MultiConfiguration
e especifique oMultipliers
, separado por vírgulas. Por exemplo:BuildConfiguration, BuildPlatform
selecioneParallel
se pretende distribuir as tarefas (uma para cada combinação de valores) para vários agentes em paralelo, se estiverem disponíveis.No separador Compilar, selecione este passo e especifique os
Platform
argumentos eConfiguration
. Por exemplo:- Plataforma:
$(BuildPlatform)
- Configuração:
$(BuildConfiguration)
- Plataforma:
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
- Tente reproduzir o erro localmente
- O que mais posso fazer?
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:
- Registos de diagnóstico de trabalho
- Registos de diagnóstico do agente
- Outros registos (Ambiente e capacidades)
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 |