MSBuild@1 - Attività MSBuild v1

Usare questa attività per compilare con MSBuild.

Sintassi

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

Input

solution - Progetto
string. Obbligatorio. Valore predefinito: **/*.sln.

Per compilare più progetti, specificare i criteri di ricerca. È possibile usare un carattere jolly a cartella singola (*) e i caratteri jolly ricorsivi (**). Ad esempio, **.*proj cerca tutti i file di progetto MSBuild (.*proj) in tutte le sottodirectory.

Assicurarsi che i progetti specificati vengano scaricati da questa pipeline di compilazione. Nella scheda Repository :

  • Se si usa TFVC, assicurarsi che il progetto sia figlio di uno dei mapping nella scheda Repository.
  • Se si usa Git, assicurarsi che il progetto o il progetto si trovi nel repository Git, in un ramo che si sta compilando.

Suggerimento

Se si compila una soluzione, è consigliabile usare l'attività di compilazione di Visual Studio anziché l'attività MSBuild.


msbuildLocationMethod - Msbuild
string. Valori consentiti: version, location (specificare la posizione). Valore predefinito: version.


msbuildVersion - Versione di MSBuild
string. facoltativo. Usare quando msbuildLocationMethod = version. Valori consentiti: 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). Valore predefinito: latest.

Se non è possibile trovare la versione preferita, viene invece usata la versione più recente trovata. In un agente xbuild macOS viene usato (Mono) se la versione è inferiore a 15.0.


msbuildVersion - Versione di MSBuild
string. facoltativo. Usare quando msbuildLocationMethod = version. Valori consentiti: 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). Valore predefinito: latest.

Se non è possibile trovare la versione preferita, viene invece usata la versione più recente trovata. In un agente xbuild macOS viene usato (Mono) se la versione è inferiore a 15.0.


msbuildArchitecture - Architettura di MSBuild
string. facoltativo. Usare quando msbuildLocationMethod = version. Valori consentiti: x86 (MSBuild x86), x64 (MSBuild x64). Valore predefinito: x86.

Fornisce l'architettura MSBuild (x86, x64) da eseguire.


msbuildLocation - Percorso di MSBuild
string. facoltativo. Usare quando msbuildLocationMethod = location.

Fornisce il percorso a MSBuild.


platform - Piattaforma
string.

Suggerimento

  • Se si ha come destinazione un file di progetto MSBuild (.*proj) anziché una soluzione, specificare AnyCPU (senza spazi vuoti).
  • Dichiarare una variabile di compilazione, ad BuildPlatform esempio nella scheda Variabili (selezionando Allow in fase di coda) e farvi riferimento qui come $(BuildPlatform). In questo modo è possibile modificare la piattaforma quando si accoda la compilazione e si abilita la compilazione di più configurazioni.

configuration - Configurazione
string.

Suggerimento

Dichiarare una variabile di compilazione, ad BuildConfiguration esempio nella scheda Variabili (selezionando Allow in fase di coda) e farvi riferimento qui come $(BuildConfiguration). In questo modo è possibile modificare la piattaforma quando si accoda la compilazione e si abilita la compilazione di più configurazioni.


msbuildArguments - Argomenti di MSBuild
string.

Specifica argomenti aggiuntivi passati a MSBuild (in Windows) e xbuild (in macOS).


clean - Pulito
boolean. Valore predefinito: false.

Impostare su False se si vuole creare una compilazione incrementale. Questa impostazione potrebbe ridurre il tempo di compilazione, soprattutto se la codebase è di grandi dimensioni. Questa opzione non ha alcun effetto pratico, a meno che non si imposti anche il Clean repository su False. Impostare su True se si desidera ricompilare tutto il codice nei progetti di codice. Equivale all'argomento MSBuild /target:clean . Per altre informazioni, vedere Opzioni repository


maximumCpuCount - Compilazione in parallelo
boolean. Valore predefinito: false.

Se la configurazione di destinazione MSBuild è compatibile con la compilazione in parallelo, è possibile controllare questo input per passare l'opzione /m a MSBuild (solo Windows). Se la configurazione di destinazione non è compatibile con la compilazione in parallelo, la verifica di questa opzione può causare file-in-use errori o errori di compilazione intermittenti o incoerenti.


restoreNugetPackages - Ripristinare pacchetti NuGet
boolean. Valore predefinito: false.

Questa opzione è deprecata. Per ripristinare i pacchetti NuGet, aggiungere un'attività NuGet prima della compilazione.


logProjectEvents - Registrare i dettagli del progetto
boolean. Valore predefinito: false.

Facoltativamente, registra i dettagli della sequenza temporale per ogni progetto (solo Windows).


createLogFile - Creare un file di log
boolean. Valore predefinito: false.

Facoltativamente, crea un file di log (solo Windows).


logFileVerbosity - Dettagli file di log
string. facoltativo. Usare quando createLogFile = true. Valori consentiti: quiet, minimal, normal, detailed, diagnostic. Valore predefinito: normal.

Specifica il livello di dettaglio del file di log.


Opzioni di controllo delle attività

Tutte le attività dispongono di opzioni di controllo oltre ai relativi input attività. Per altre informazioni, vedere Opzioni di controllo e proprietà comuni delle attività.

Variabili di output

Nessuno.

Osservazioni

È consigliabile usare l'attività Di compilazione di Visual Studio o l'attività MSBuild?

Se si compila una soluzione, nella maggior parte dei casi è consigliabile usare l'attività Di compilazione di Visual Studio. Questa attività viene eseguita automaticamente:

  • Imposta automaticamente la /p:VisualStudioVersion proprietà . In questo modo MSBuild usa un determinato set di destinazioni che aumentano la probabilità di una compilazione corretta.
  • Specifica l'argomento della versione di MSBuild.

In alcuni casi, potrebbe essere necessario usare l'attività MSBuild . Ad esempio, è consigliabile usarlo se si creano progetti di codice diversi da una soluzione.

Dove è possibile ottenere altre informazioni su MSBuild?

Riferimenti a MSBuild

Riferimenti alla riga di comando di MSBuild

Ricerca per categorie compilare più configurazioni per più piattaforme?

  1. Nella scheda Variabili assicurarsi di avere variabili definite per le configurazioni e le piattaforme. Per specificare più valori, separarli con virgole. Ad esempio:

    • Per un'app .NET, è possibile specificare con i valori di debug e rilascio e è possibile specificare BuildConfigurationBuildPlatform con qualsiasi valore della CPU.
    • Per un'app C++ è possibile specificare con i valori di debug e versione e è possibile specificare BuildConfigurationBuildPlatform i valori x86 e x64.
  2. Nella scheda Opzioni selezionare MultiConfiguration e specificare , Multipliersseparati da virgole. Ad esempio: BuildConfiguration, BuildPlatform selezionare Parallel se si desidera distribuire i processi (uno per ogni combinazione di valori) a più agenti in parallelo se sono disponibili.

  3. Nella scheda Compila selezionare questo passaggio e specificare gli Platform argomenti e Configuration . Ad esempio:

    • Piattaforma: $(BuildPlatform)
    • Configurazione: $(BuildConfiguration)

È possibile compilare file TFSBuild.proj?

Non è possibile compilare TFSBuild.proj file. Questi tipi di file vengono generati da TFS 2005 e TFS 2008. Questi file contengono attività e le destinazioni sono supportate solo usando compilazioni XAML.

Risoluzione dei problemi

Questa sezione fornisce suggerimenti per la risoluzione dei problemi comuni che un utente potrebbe riscontrare quando si usa l'attività MSBuild .

Compilazione non riuscita con l'errore seguente: si è verificato un errore interno durante l'esecuzione di MSBuild

Possibili cause
  • Modificare la versione di MSBuild.
  • Problemi relativi a un'estensione di terze parti.
  • Nuovi aggiornamenti a Visual Studio che possono causare assembly mancanti nell'agente di compilazione.
  • Spostato o eliminato alcuni dei pacchetti NuGet necessari.
Suggerimenti per la risoluzione dei problemi
Eseguire la pipeline con diagnostica per recuperare i log dettagliati

Una delle opzioni disponibili per diagnosticare il problema consiste nell'esaminare i log generati. È possibile visualizzare i log della pipeline selezionando l'attività e il processo appropriati nel riepilogo dell'esecuzione della pipeline.

Per ottenere i log dell'esecuzione della pipeline Ottenere i log per diagnosticare i problemi

È anche possibile configurare e scaricare un log dettagliato personalizzato per facilitare la risoluzione dei problemi:

Oltre ai log di diagnostica della pipeline, è anche possibile controllare questi altri tipi di log che contengono altre informazioni per consentire il debug e risolvere il problema:

Provare a riprodurre l'errore in locale

Se si usa un agente di compilazione ospitato, è possibile provare a riprodurre l'errore in locale. Ciò consente di limitare se l'errore è il risultato dell'agente di compilazione o dell'attività di compilazione.

Eseguire lo stesso comando nel computer locale usando gli stessi MSBuild argomenti. Per informazioni di riferimento, vedere il comando MSBuild .

Suggerimento

Se è possibile riprodurre il problema nel computer locale, il passaggio successivo consiste nell'analizzare il problema di MSBuild .

Altre informazioni sugli agenti ospitati da Microsoft.

Per configurare un agente self-hosted ed eseguire i processi di compilazione:

In quale altro modo è possibile procedere?

Alcuni degli errori di MSBuild sono causati da una modifica in Visual Studio, in modo da poter cercare in Visual Studio Developer Community per verificare se questo problema è stato segnalato. Abbiamo anche benvenuto le tue domande, suggerimenti e commenti.

Requisiti

Requisito Descrizione
Tipi di pipeline YAML, build classica
Esecuzione in Agente, DeploymentGroup
Richieste Gli agenti self-hosted devono avere funzionalità che corrispondono alle richieste seguenti per eseguire processi che usano questa attività: msbuild
Capabilities Questa attività non soddisfa le richieste per le attività successive nel processo.
Restrizioni dei comandi Qualsiasi
Variabili impostabili Qualsiasi
Versione agente 1.95.0 o versione successiva
Categoria attività Compilazione

Vedi anche