Partager via


MSBuild@1 - Tâche MSBuild v1

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 BuildPlatform sous l’onglet Variables (en sélectionnant Allow au 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:VisualStudioVersion pour 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 ?

  1. 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 BuildConfiguration avec des valeurs de débogage et de mise en production, et vous pouvez spécifier BuildPlatform avec n’importe quelle valeur 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écifier BuildPlatform avec toutes les valeurs x86 et x64.
  2. Sous l’onglet Options, sélectionnez MultiConfiguration et spécifiez le Multipliers, séparés par des virgules. Par exemple : BuildConfiguration, BuildPlatform Sélectionnez Parallel si vous souhaitez distribuer les travaux (un pour chaque combinaison de valeurs) à plusieurs agents en parallèle s’ils sont disponibles.

  3. Sous l’onglet Générer, sélectionnez cette étape et spécifiez les arguments Platform et Configuration. Par exemple:

    • Plateforme: $(BuildPlatform)
    • Configuration : $(BuildConfiguration)

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

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 :

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

Voir aussi