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 (selezionandoAllow
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 alla riga di comando di MSBuild
Ricerca per categorie compilare più configurazioni per più piattaforme?
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
BuildConfiguration
BuildPlatform
con qualsiasi valore della CPU. - Per un'app C++ è possibile specificare con i valori di debug e versione e è possibile specificare
BuildConfiguration
BuildPlatform
i valori x86 e x64.
- Per un'app .NET, è possibile specificare con i valori di debug e rilascio e è possibile specificare
Nella scheda Opzioni selezionare
MultiConfiguration
e specificare ,Multipliers
separati da virgole. Ad esempio:BuildConfiguration, BuildPlatform
selezionareParallel
se si desidera distribuire i processi (uno per ogni combinazione di valori) a più agenti in parallelo se sono disponibili.Nella scheda Compila selezionare questo passaggio e specificare gli
Platform
argomenti eConfiguration
. Ad esempio:- Piattaforma:
$(BuildPlatform)
- Configurazione:
$(BuildConfiguration)
- Piattaforma:
È 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
- Provare a riprodurre l'errore in locale
- Cos'altro posso fare?
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:
- Log di diagnostica del ruolo di lavoro
- Log di diagnostica dell’agente
- Altri log (ambiente e funzionalità)
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 |