Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Utilisez cette tâche pour générer avec MSBuild.
Remarque
Pour plus d’informations sur MSBuild, consultez Comment MSBuild génère des projets.
Syntaxe
# 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.
Entrées
solution
-
project
string. Obligatoire. Valeur par défaut : **/*.sln.
Si vous souhaitez créer plusieurs projets, spécifiez les 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 de 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 le projet se trouve dans votre dépôt Git, dans une branche que vous créez.
Conseil / Astuce
Si vous créez une solution, nous vous recommandons d’utiliser la tâche de génération Visual Studio au lieu de la tâche MSBuild.
Pour plus d’informations sur les différences entre MSBuild et Visual Studio build, consultez Builds Visual Studio et builds MSBuild.exe.
msbuildLocationMethod
-
msBuild
string. Valeurs autorisées : version, location (Spécifier l’emplacement). Valeur par défaut : version.
msbuildVersion
-
version MSBuild
string. Optionnel. 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.
msbuildArchitecture
-
d’architecture MSBuild
string. Optionnel. 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.
chemin d’accès msbuildLocation - à MSBuild
string. Optionnel. Utilisez quand msbuildLocationMethod = location.
Fournit le chemin d’accès à MSBuild.
platform
-
Plateforme
string.
Conseil / Astuce
- Si vous ciblez un fichier de projet MSBuild (.*proj) au lieu d’une solution, spécifiez
AnyCPU(aucun espace blanc). - Déclarez une variable de build telle que
BuildPlatformsous l’onglet Variables (en sélectionnantAllowau moment de la file d’attente) et référencez-la ici comme$(BuildPlatform). De cette façon, vous pouvez modifier la plateforme lorsque vous vrez mettre en file d’attente la build et activer la génération de plusieurs configurations.
configuration
-
Configuration
string.
Conseil / Astuce
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 comme $(BuildConfiguration). De cette façon, vous pouvez modifier la plateforme lorsque vous vrez mettre en file d’attente la build et activer la génération de plusieurs configurations.
msbuildArguments
-
arguments MSBuild
string.
Spécifie des arguments supplémentaires passés à MSBuild (sur Windows) et xbuild (sur macOS).
clean
-
Nettoyer
boolean. Valeur par défaut : false.
Définissez la valeur False si vous souhaitez créer cette build incrémentielle. Ce paramètre peut réduire le temps de génération, en particulier si votre codebase est volumineux. Cette option n’a aucun effet pratique, sauf si vous définissez également le référentiel Clean sur False.
Définissez la valeur 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
build maximumCpuCount - 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 vérifier cette entrée pour passer le commutateur /m à 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 des erreurs file-in-use, ou des échecs de build intermittents ou incohérents.
restoreNugetPackages
-
restaurer des packages NuGet
boolean. Valeur par défaut : false.
Cette option 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 les détails de la chronologie pour chaque projet (Windows uniquement).
createLogFile
-
créer un fichier journal
boolean. Valeur par défaut : false.
Vous pouvez éventuellement créer un fichier journal (Windows uniquement).
logFileVerbosity
-
détail du fichier journal
string. Optionnel. Utilisez quand createLogFile = true. Valeurs autorisées : quiet, minimal, normal, detailed, diagnostic. Valeur par défaut : normal.
Spécifie le détail du fichier journal.
Options de contrôle de tâche
Toutes les tâches ont des options de contrôle en plus de leurs entrées de tâche. Pour plus d’informations, consultez Options de contrôle et propriétés de tâche courantes.
Variables de sortie
Aucun.
Remarques
Dois-je utiliser la tâche Visual Studio Build ou la tâche MSBuild ?
Si vous créez une solution, dans la plupart des cas, vous devez utiliser la tâche Visual Studio Build. Cette tâche est automatiquement :
- Définit la propriété
/p:VisualStudioVersionpour vous. Cela force MSBuild à utiliser un ensemble particulier de cibles qui augmentent la probabilité d’une build réussie. - Spécifie l’argument de version MSBuild.
Dans certains cas, vous devrez peut-être utiliser la tâche MSBuild. Par exemple, vous devez l’utiliser si vous créez des projets de code en dehors d’une solution.
Où puis-je en savoir plus sur MSBuild ?
Informations de référence sur MSBuild
référence de ligne de commande MSBuild
Comment créer plusieurs configurations pour plusieurs plateformes ?
Sous l’onglet Variables, vérifiez que vous avez des variables définies pour vos configurations et plateformes. Pour spécifier plusieurs valeurs, séparez-les par des virgules. Par exemple:
- Pour une application .NET, vous pouvez spécifier
BuildConfigurationavec des valeurs de débogage et de mise en production, et vous pouvez spécifierBuildPlatformavec n’importe quelle valeur processeur. - Pour une application C++, vous pouvez spécifier
BuildConfigurationavec des valeurs de débogage et de mise en production, et vous pouvez spécifierBuildPlatformavec toutes les valeurs x86 et x64.
- Pour une application .NET, vous pouvez spécifier
Sous l’onglet Options, sélectionnez
MultiConfigurationet spécifiez leMultipliers, séparés par des virgules. Par exemple :BuildConfiguration, BuildPlatformSélectionnezParallelsi 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 arguments
PlatformetConfiguration. Par exemple:- Plateforme:
$(BuildPlatform) - Configuration :
$(BuildConfiguration)
- Plateforme:
Puis-je générer des fichiers TFSBuild.proj ?
Vous ne pouvez pas générer de fichiers TFSBuild.proj. 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.
Résolution des problèmes
Cette section fournit des conseils de résolution des problèmes courants rencontrés par un utilisateur lors de l’utilisation de la tâche MSBuild.
É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éplacé ou supprimé 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
- Essayez 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 vos journaux de 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 Obtenir des journaux pour diagnostiquer les problèmes
Vous pouvez également configurer et télécharger un journal détaillé personnalisé pour vous aider à résoudre vos problèmes :
Outre les journaux de diagnostic de pipeline, vous pouvez également vérifier ces autres types de journaux contenant plus d’informations pour vous aider à déboguer et à résoudre le problème :
- journaux de diagnostic Worker
- journaux de diagnostic Agent
- autres journaux d’activité (Environnement et fonctionnalités)
Essayez 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 commande MSBuild sur votre ordinateur local à l’aide des mêmes arguments. Consultez commande MSBuild pour référence.
Conseil / Astuce
Si vous pouvez reproduire le problème sur votre ordinateur local, l’étape suivante consiste à examiner le problème MSBuild.
En savoir plus sur agents hébergés par Microsoft.
Pour configurer votre propre agent auto-hébergé et exécuter les travaux de génération :
Que puis-je faire d’autre ?
Certaines erreurs MSBuild sont causées par une modification dans Visual Studio afin de pouvoir effectuer des recherches sur Communauté des développeurs Visual Studio pour voir si ce problème a été signalé. Nous vous accueillons également vos questions, suggestions et commentaires.
Spécifications
| Besoin | Descriptif |
|---|---|
| Types de pipelines | YAML, build classique |
| Exécutions sur | Agent, Groupe de déploiement |
| demandes | Les agents auto-hébergés doivent disposer de fonctionnalités qui correspondent aux exigences de suivantes pour exécuter des travaux qui utilisent cette tâche : msbuild |
| fonctionnalités de | Cette tâche ne répond à aucune demande de tâches ultérieures dans le travail. |
| restrictions de commande | N'importe quel |
| variables settables | N'importe quel |
| Version de l’agent | 1.95.0 ou version ultérieure |
| Catégorie de tâche | Construire |