MSBuild@1 - Tâche MSBuild v1
Utilisez cette tâche pour générer avec 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.
Entrées
solution
- Projet
string
. Obligatoire. Valeur par défaut : **/*.sln
.
Si vous souhaitez générer plusieurs projets, spécifiez des critères de recherche. Vous pouvez utiliser un caractère générique à dossier unique (*) et des caractères génériques récursifs (**). Par exemple, **.*proj
recherche tous les fichiers du projet MSBuild (.*proj
) dans tous les sous-répertoires.
Vérifiez que les projets que vous spécifiez sont téléchargés par ce pipeline de build. Sous l’onglet Référentiel :
- Si vous utilisez TFVC, vérifiez que le projet est un enfant de l’un des mappages sous l’onglet Référentiel.
- Si vous utilisez Git, assurez-vous que le projet ou la solution est dans votre référentiel Git, dans une branche que vous générez.
Conseil
Si vous générez une solution, nous vous recommandons d’utiliser la tâche de génération Visual Studio au lieu de la tâche MSBuild.
msbuildLocationMethod
- Msbuild
string
. Valeurs autorisées : version
, location
(Spécifier l’emplacement). Valeur par défaut : version
.
msbuildVersion
- MSBuild Version
string
. facultatif. Utilisez quand msbuildLocationMethod = version
. Valeurs autorisées : 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). Valeur par défaut : latest
.
Si la version par défaut est introuvable, la dernière version trouvée est utilisée à la place. Sur un agent macOS, xbuild
(Mono) est utilisé si la version est inférieure à 15.0
.
msbuildVersion
- MSBuild Version
string
. facultatif. Utilisez quand msbuildLocationMethod = version
. Valeurs autorisées : 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). Valeur par défaut : latest
.
Si la version par défaut est introuvable, la dernière version trouvée est utilisée à la place. Sur un agent macOS, xbuild
(Mono) est utilisé si la version est inférieure à 15.0
.
msbuildArchitecture
- MSBuild Architecture
string
. facultatif. Utilisez quand msbuildLocationMethod = version
. Valeurs autorisées : x86
(MSBuild x86), x64
(MSBuild x64). Valeur par défaut : x86
.
Fournit l’architecture MSBuild (x86, x64) à exécuter.
msbuildLocation
- Chemin d’accès à MSBuild
string
. facultatif. Utilisez quand msbuildLocationMethod = location
.
Fournit le chemin d’accès à MSBuild.
platform
- Plate-forme
string
.
Conseil
- Si vous ciblez un fichier projet MSBuild (.*proj) au lieu d’une solution, spécifiez
AnyCPU
(aucun espace). - Déclarez une variable de build telle que
BuildPlatform
sous l’onglet Variables (en sélectionnantAllow
au moment de la file d’attente) et référencez-la ici en tant que$(BuildPlatform)
. De cette façon, vous pouvez modifier la plateforme quand vous mettez la build en file d’attente et activez la génération de plusieurs configurations.
configuration
- Configuration
string
.
Conseil
Déclarez une variable de build telle que BuildConfiguration
sous l’onglet Variables (en sélectionnant Allow
au moment de la file d’attente) et référencez-la ici en tant que $(BuildConfiguration)
. De cette façon, vous pouvez modifier la plateforme quand vous mettez la build en file d’attente et activez la génération de plusieurs configurations.
msbuildArguments
- MSBuild Arguments
string
.
Spécifie des arguments supplémentaires passés à MSBuild (sur Windows) et xbuild (sur macOS).
clean
- Propre
boolean
. Valeur par défaut : false
.
Définissez sur False
si vous souhaitez en faire une build incrémentielle. Ce paramètre peut réduire le temps de génération, en particulier si votre codebase est grand. Cette option n’a aucun effet pratique, sauf si vous définissez également le Clean
dépôt sur False
.
Définissez sur True
si vous souhaitez reconstruire tout le code dans les projets de code. Cela équivaut à l’argument /target:clean
MSBuild.
Pour plus d’informations, consultez Options de dépôt
maximumCpuCount
- Générer en parallèle
boolean
. Valeur par défaut : false
.
Si votre configuration cible MSBuild est compatible avec la génération en parallèle, vous pouvez case activée cette entrée pour passer le /m
commutateur à MSBuild (Windows uniquement). Si votre configuration cible n’est pas compatible avec la génération en parallèle, la vérification de cette option peut entraîner file-in-use
des erreurs ou des échecs de build intermittents ou incohérents.
restoreNugetPackages
- Restaurer des packages NuGet
boolean
. Valeur par défaut : false
.
Cette fonction est déconseillée. Pour restaurer des packages NuGet, ajoutez une tâche NuGet avant la génération.
logProjectEvents
- Enregistrer les détails du projet
boolean
. Valeur par défaut : false
.
Enregistre éventuellement chronologie détails pour chaque projet (Windows uniquement).
createLogFile
- Créer un fichier journal
boolean
. Valeur par défaut : false
.
Crée éventuellement un fichier journal (Windows uniquement).
logFileVerbosity
- Détail du fichier journal
string
. facultatif. Utilisez quand createLogFile = true
. Valeurs autorisées : quiet
, minimal
, normal
, detailed
, diagnostic
. Valeur par défaut : normal
.
Spécifie le niveau de détail du fichier journal.
Options de contrôle de la tâche
Toutes les tâches ont des options de contrôle en plus de leurs entrées de tâches. Pour plus d’informations, consultez Options de contrôle et propriétés de tâche courantes.
Variables de sortie
Aucun.
Notes
Dois-je utiliser la tâche Build Visual Studio ou la tâche MSBuild ?
Si vous générez une solution, dans la plupart des cas, vous devez utiliser la tâche Build Visual Studio. Cette tâche effectue automatiquement les actions suivantes :
- Définit la propriété
/p:VisualStudioVersion
pour vous. Cela force MSBuild à utiliser un ensemble particulier de cibles qui augmentent la probabilité de succès d’une build. - Spécifie l’argument de version MSBuild.
Dans certains cas, vous devrez peut-être utiliser la MSBuild
tâche. Par exemple, vous devez l’utiliser si vous générez des projets de code en dehors d’une solution.
Où peut-on se renseigner sur MSBuild ?
Informations de référence sur MSBuild
Informations de référence sur la ligne de commande MSBuild
Comment générer plusieurs configurations pour plusieurs plateformes ?
Sous l’onglet Variables, vérifiez que vous avez défini des variables pour vos configurations et plateformes. Pour spécifier plusieurs valeurs, séparez-les avec des virgules. Par exemple :
- Pour une application .NET, vous pouvez spécifier
BuildConfiguration
avec des valeurs de débogage et de mise en production, et vous pouvez spécifierBuildPlatform
avec n’importe quelle valeur de processeur. - Pour une application C++, vous pouvez spécifier
BuildConfiguration
avec des valeurs de débogage et de mise en production, et vous pouvez spécifierBuildPlatform
avec n’importe quelle valeur x86 et x64.
- Pour une application .NET, vous pouvez spécifier
Sous l’onglet Options, sélectionnez
MultiConfiguration
et spécifiez leMultipliers
, séparé par des virgules. Par exemple :BuildConfiguration, BuildPlatform
sélectionnezParallel
si vous souhaitez distribuer les travaux (un pour chaque combinaison de valeurs) à plusieurs agents en parallèle s’ils sont disponibles.Sous l’onglet Générer, sélectionnez cette étape et spécifiez les
Platform
arguments etConfiguration
. Par exemple :- Plateforme :
$(BuildPlatform)
- Configuration :
$(BuildConfiguration)
- Plateforme :
Puis-je générer des fichiers TFSBuild.proj ?
Vous ne pouvez pas générer de TFSBuild.proj
fichiers. Ces types de fichiers sont générés par TFS 2005
et TFS 2008
. Ces fichiers contiennent des tâches et les cibles sont prises en charge uniquement à l’aide de builds XAML.
Dépannage
Cette section fournit des conseils de résolution des problèmes courants qu’un utilisateur peut rencontrer lors de l’utilisation de la MSBuild
tâche.
Échec de la génération avec l’erreur suivante : une défaillance interne s’est produite lors de l’exécution de MSBuild
Causes possibles
- Modifiez la version de MSBuild.
- Problèmes liés à une extension tierce.
- Nouvelles mises à jour de Visual Studio qui peuvent entraîner des assemblys manquants sur l’agent de build.
- Déplacement ou suppression de certains des packages NuGet nécessaires.
Suggestions sur la résolution de problèmes
- Exécuter le pipeline avec des diagnostics pour récupérer des journaux détaillés
- Essayer de reproduire l’erreur localement
- Que puis-je faire d’autre ?
Exécuter le pipeline avec des diagnostics pour récupérer des journaux détaillés
L’une des options disponibles pour diagnostiquer le problème consiste à examiner les journaux générés. Vous pouvez afficher les journaux de votre pipeline en sélectionnant la tâche et le travail appropriés dans le résumé de l’exécution de votre pipeline.
Pour obtenir les journaux d’exécution de votre pipeline, consultez Obtenir les journaux d’activité pour diagnostiquer les problèmes
Vous pouvez également configurer et télécharger un journal détaillé personnalisé pour faciliter votre résolution des problèmes :
En plus des journaux de diagnostic du pipeline, vous pouvez également consulter ces autres types de journaux qui contiennent plus d’informations pour vous aider à déboguer et résoudre le problème :
- Journaux de diagnostic de travail
- Journaux de diagnostic de l’agent
- Autres journaux (environnement et fonctionnalités)
Essayer de reproduire l’erreur localement
Si vous utilisez un agent de build hébergé, vous pouvez essayer de reproduire l’erreur localement. Cela vous aidera à déterminer si l’échec est le résultat de l’agent de build ou de la tâche de génération.
Exécutez la même MSBuild
commande sur votre ordinateur local à l’aide des mêmes arguments. Consultez la commande MSBuild pour obtenir des informations de référence.
Conseil
Si vous pouvez reproduire le problème sur votre ordinateur local, l’étape suivante consiste à examiner le problème MSBuild.
En savoir plus sur les agents hébergés par Microsoft.
Pour configurer votre agent autohébergé et exécuter les travaux de génération :
Que puis-je faire d’autre ?
Certaines des erreurs MSBuild sont dues à une modification dans Visual Studio, de sorte que vous pouvez rechercher sur Visual Studio Developer Community pour voir si ce problème a été signalé. Vos questions, suggestions et commentaires sont également les bienvenus.
Configuration requise
Condition requise | Description |
---|---|
Types de pipelines | YAML, build classique |
S’exécute sur | Agent, DeploymentGroup |
Demandes | Les agents auto-hébergés doivent avoir des fonctionnalités qui correspondent aux exigences suivantes pour exécuter des travaux qui utilisent cette tâche : msbuild |
Capabilities | Cette tâche ne répond à aucune demande pour les tâches suivantes dans le travail. |
Restrictions de commandes | Quelconque |
Variables settables | Quelconque |
Version de l’agent | 1.95.0 ou version ultérieure |
Catégorie de la tâche | Build |