Partager via


Personnaliser toutes les builds .NET

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

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

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

Vous pouvez spécifier les emplacements de ces fichiers à l’aide des propriétés MSBuild suivantes :

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

Les versions courantes de ces propriétés affectent les projets C# et Visual Basic. Vous pouvez définir ces propriétés dans la 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.props s’il les trouve dans le dossier MSBuild chaque fois qu’il génère un projet du type correspondant. Cette personnalisation peut avoir des conséquences inattendues et, si elle est effectuée incorrectement, peut désactiver la capacité de Visual Studio à générer sur votre ordinateur.

Remplacer le fichier de propriétés commun.

Vous pouvez également utiliser les propriétés AlternateCommonProps pour spécifier votre propre .props fichier à utiliser au lieu de Microsoft.Common.props. Si vous avez déjà ressenti la nécessité de personnaliser Microsoft.Common.props en le modifiant directement, vous pouvez plutôt copier la version standard de ce fichier dans un autre fichier, puis apporter vos modifications uniquement dans l’autre version.

La meilleure approche dépend de votre 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 certaines cibles s’exécutent toujours sur toutes les builds du type de projet approprié qui s’exécutent sur ce serveur, l’utilisation d’un fichier personnalisé .targets ou .props global est logique. Si vous souhaitez que les cibles personnalisées s’exécutent uniquement lorsque certaines conditions s’appliquent, utilisez un autre emplacement de fichier et définissez le chemin d’accès à ce fichier en définissant la propriété MSBuild appropriée dans la ligne de commande MSBuild uniquement si nécessaire.