Partager via


Personnalisation de toutes les builds .NET

Les techniques décrites dans cet article sont utiles quand vous souhaitez personnaliser toutes les builds exécutées sur un ordinateur, une machine virtuelle ou un conteneur spécifique. Par exemple, quand vous configurez un serveur de builds, vous devrez peut-être configurer les paramètres MSBuild globalement pour toutes les builds présentes sur le serveur. Il est en principe possible de modifier les fichiers Microsoft.Common.targets et Microsoft.Common.props globaux, mais il existe une meilleure façon de faire. Vous pouvez affecter toutes les builds d’un certain type de projet (par exemple tous les projets C#) en utilisant certaines propriétés MSBuild et en ajoutant des fichiers .targets et .props personnalisés.

Avant et après les fichiers .props et .targets standard

Pour affecter toutes les builds C# ou Visual Basic régies par une installation de MSBuild ou de Visual Studio, créez un fichier Custom.Before.Microsoft.Common.targets ou Custom.After.Microsoft.Common.targets dont les cibles s’exécuteront avant ou après Microsoft.Common.targets, ou un fichier Custom.Before.Microsoft.Common.props ou Custom.After.Microsoft.Common.props dont les propriétés seront traitées avant ou après Microsoft.Common.props.

Spécifiez l’emplacement de ces fichiers à l’aide des propriétés MSBuild suivantes :

  • CustomBeforeMicrosoftCommonProps
  • CustomBeforeMicrosoftCommonTargets
  • CustomAfterMicrosoftCommonProps
  • CustomAfterMicrosoftCommonTargets
  • CustomBeforeMicrosoftCSharpTargets
  • CustomBeforeMicrosoftVisualBasicTargets
  • CustomAfterMicrosoftCSharpTargets
  • CustomAfterMicrosoftVisualBasicTargets

Les versions Common de ces propriétés affectent les projets C# et Visual Basic. Vous pouvez définir ces propriétés en ligne de commande MSBuild.

msbuild /p:CustomBeforeMicrosoftCommonTargets="C:\build\config\Custom.Before.Microsoft.Common.Targets" MyProject.csproj

Avertissement

Visual Studio utilise les fichiers personnalisés .targets et .props s’il les trouve dans le dossier MSBuild chaque fois qu’il génère un projet du type correspondant. Cela peut avoir des conséquences inattendues et, si l’opération est incorrecte, désactiver la capacité de Visual Studio à mener à bien le processus de build sur l’ordinateur.

Remplacer le fichier .props communs

Vous pouvez également utiliser les propriétés AlternateCommonProps pour spécifier votre propre fichier .props à utiliser à la place de Microsoft.Common.props. Si vous souhaitez personnaliser Microsoft.Common.props en le modifiant directement, vous pouvez copier la version standard de ce fichier dans un autre fichier à la place, puis modifier uniquement la version alternative.

La meilleure approche dépend du scénario. À l’aide de l’extensibilité de Visual Studio, vous pouvez personnaliser le système de build et fournir un mécanisme d’installation et de gestion des personnalisations.

Si vous disposez d’un serveur de build dédié et que vous souhaitez vous assurer que certaines cibles s’exécutent toujours sur toutes les builds du type de projet approprié qui ont lieu sur ce serveur, il est logique d’utiliser un fichier personnalisé .targets ou .props global. Si vous souhaitez que les cibles personnalisées ne s’exécutent que lorsque certaines conditions s’appliquent, utilisez un autre emplacement de fichier et spécifiez son chemin en définissant la propriété MSBuild appropriée en ligne de commande MSBuild seulement lorsque c’est nécessaire.