Comment : personnaliser des numéros de build
Mise à jour : novembre 2007
Vous pouvez personnaliser Team Foundation Build en créant vos propres tâches personnalisées qui s'exécutent pendant une génération. Cette rubrique explique les différentes étapes à suivre pour personnaliser une définition de build Team Foundation Build avec une tâche qui génère des numéros de build.
Composants requis
Avant de créer la tâche permettant de personnaliser des numéros de build, vous devez disposer des éléments suivants :
Accès au fichier TFSBuild.proj de la définition de build que vous souhaitez personnaliser.
Le fichier TFSBuild.proj peut être associé à plusieurs définitions de build. Pour déterminer l'emplacement de contrôle de code source du fichier TFSBuild.proj, sélectionnez la définition de génération dans le dossier Builds dans Team Explorer, cliquez dessus avec le bouton droit, puis cliquez sur Modifier. L'emplacement de contrôle de code source du fichier TFSBuild.proj s'affiche dans le volet Fichier projet de la boîte de dialogue Définition de build. Par défaut, le fichier TFSBuild.proj se trouve dans le dossier $/MyTeamProject/TeamBuildTypes/MyBuildName dans contrôle de version Team Foundation. MyTeamProject est le nom de votre projet d'équipe et le nœud racine de tous vos fichiers sources de projet d'équipe. MyBuildName est le nom que vous avez donné à la première définition de build associée au fichier TFSBuild.proj. Pour plus d'informations sur la création de types de build Team Foundation Build, consultez Comment : créer une définition de build.
Remarque importante : Lorsque vous personnalisez le fichier TFSBuild.proj, vous personnalisez chaque définition de build qui lui est associée.
Espace de travail local contenant les fichiers de votre projet d'équipe et les fichiers de build sur votre ordinateur local.
Pour plus d'informations, consultez Comment : créer un espace de travail mappé et Comment : obtenir la source de votre projet d'équipe.
Autorisations requises.
Pour effectuer cette tâche, vous devez disposer des autorisations Administrer une build et Administrer les espaces de travail avec la valeur Autoriser. Vous devez également disposer des autorisations Archiver et Extraire avec la valeur Autoriser. Pour plus d'informations, consultez Autorisations de Team Foundation Server.
Écriture de la tâche pour le numéro de build
Pour écrire votre tâche, vous pouvez implémenter directement l'interface ITask ou dériver votre classe d'une classe d'aide Task. ITask est défini dans l'assembly Microsoft.Build.Framework.dll et Task est défini dans l'assembly Microsoft.Build.Utilitites.dll.
Pour personnaliser le numéro de build généré par Team Foundation Build, vous devez insérer votre tâche dans la cible BuildNumberOverrideTarget. BuildNumberOverrideTarget requiert une propriété de sortie appelée BuildNumber.. L'attribut Output indique que la propriété est la propriété de sortie de votre tâche personnalisée. Pour plus d'informations sur les cibles Team Foundation Build, consultez Cibles Team Foundation Build personnalisables.
Pour écrire votre tâche personnalisée
Créez une bibliothèque de classes Visual C# appelée MyTask qui contient votre tâche personnalisée.
Pour plus d'informations, consultez Classes de composant.
Dans le menu Projet, cliquez sur Ajouter une référence et sélectionnez Microsoft.Build.Framework et Microsoft.Build.Utilities dans la boîte de dialogue Ajouter une référence.
Insérez le code suivant dans le fichier class.cs.
Cet exemple hérite de la classe d'aide Task et utilise les éléments UtcNow et Ticks des propriétés DateTime pour générer le numéro de build.
using System; using Microsoft.Build.Utilities; using Microsoft.Build.Framework; namespace BuildNumberGenerator { public class BuildNumberGenerator:Task { public override bool Execute() { m_buildNumber = DateTime.UtcNow.Ticks.ToString(); return true; } private string m_buildNumber; [Output] public string BuildNumber { get { return m_buildNumber; } } } }
Générez votre bibliothèque de classes pour produire MyTask.dll.
Copiez la DLL générée dans le dossier d'espace de travail local qui contient également le fichier TFSBuild.proj de votre définition de build.
Remarque importante : Vous devez avoir mappé l'emplacement du contrôle de code source du fichier TFSBuild.proj à votre espace de travail local pour que cette structure de répertoire existe sur l'ordinateur client. Pour plus d'informations, consultez Comment : obtenir la source de votre projet d'équipe.
Si votre fichier TFSBuild.proj a été stocké dans le dossier par défaut du contrôle de code source, la copie locale du fichier est localisée dans <root>: \Espace de travail local\TeamBuildTypes\MyBuildName sur l'ordinateur client. Espace de travail local est le dossier local auquel votre projet d'équipe est mappé, MyTeamProject est le nom de votre projet d'équipe et MyBuildName est le nom que vous avez donné à la première définition de build associée à ce fichier TFSBuild.proj.
Ajout du fichier DLL au contrôle de code source
Une fois que vous avez créé la DLL qui contient votre tâche personnalisée, vous devez l'ajouter au contrôle de version Team Foundation. Vous pouvez utiliser les commandes tf add et tf checkin pour ajouter et archiver la DLL dans le même emplacement que le fichier TFSBuild.proj de votre définition de build. Pour plus d'informations, consultez Add, commande et Checkin, commande.
Pour ajouter et archiver votre assembly
Cliquez sur Démarrer, puis sélectionnez successivement Tous les programmes, Microsoft Visual Studio 9.0, Visual Studio Tools et cliquez sur Invite de commandes de Visual Studio 2008. Ouvrez l'espace de travail local que vous avez mappé pour le projet d'équipe contenant le type de build à personnaliser.
Par exemple, tapez le texte suivant à l'invite de commandes :
> cd c:\MyTeamProject
Où MyTeamProject est le nom de votre projet d'équipe.
Allez à l'emplacement où le fichier TFSBuild.proj est stocké.
Par exemple, tapez le texte suivant à l'invite de commandes :
c:\MyTeamProject>cd TeamBuildTypes\MyBuildName
Où MyBuildName est le nom de la définition de build.
Pour ajouter le fichier au contrôle de version Team Foundation, tapez la commande suivante.
c:\MyTeamProject\TeamBuildTypes\MyBuildName> tf add MyTask.dll
Pour archiver votre fichier au contrôle de version Team Foundation, tapez la commande suivante.
c:\MyTeamProject\TeamBuildTypes\MyBuildName> tf checkin MyTask.dll
Vous pouvez également utiliser le Team Explorer pour ajouter votre DLL au contrôle de version Team Foundation. Pour plus d'informations, consultez Comment : ajouter un projet ou une solution au contrôle de version.
Enregistrement de la tâche
Après avoir créé votre tâche, vous devez l'inscrire en la spécifiant dans un élément UsingTask du fichier TFSBuild.proj. L'élément UsingTask mappe la tâche à l'assembly qui contient l'implémentation de la tâche. Pour plus d'informations, consultez UsingTask, élément (MSBuild).
Pour enregistrer la tâche en modifiant le fichier TFSBuild.proj
Démarrez Visual Studio.
Extrayez le fichier TFSBuild.proj que vous souhaitez modifier du contrôle de version Team Foundation et ouvrez-le dans l'éditeur XML de Visual Studio.
Ajoutez l'élément UsingTask au fichier TFSBuild.proj immédiatement après l'instruction Import.
<UsingTask TaskName="BuildNumberGenerator.BuildNumberGenerator" AssemblyFile="MyTask.dll"/>
Pour insérer votre tâche dans la cible BuildNumberOverrideTarget, ajoutez le XML suivant, entre les balises <Target></Target>, à la fin du fichier TFSBuild.proj.
</ItemGroup> <Target Name = "BuildNumberOverrideTarget" > <BuildNumberGenerator> <Output TaskParameter="BuildNumber" PropertyName="BuildNumber"/> </BuildNumberGenerator> </Target> </Project>
Cliquez sur Fichier, sur Enregistrer pour enregistrer vos modifications, puis fermez le fichier TFSBuild.proj.
Remarque : Vous recevrez des avertissements de schéma XML après avoir apporté ces modifications au fichier TFSBuild.proj. Vous pouvez ignorer ces avertissements sans risque.
Archivez le fichier TFSBuild.proj dans le contrôle de code source.
Après avoir modifié le fichier TFSBuild.proj et enregistré les modifications dans le contrôle de version Team Foundation, exécutez la définition de build.
Pour plus d'informations, consultez Comment : démarrer ou mettre en file d'attente une définition de build.
Vous pouvez afficher le numéro de build personnalisée dans Build Explorer. Pour plus d'informations, consultez Comment : surveiller la progression de la génération.