2011-09-07 4 views
2

Nous utilisons TFS 2010 avec VS 2010 pour nos projets web (php). Puisque nous n'utilisons pas de fichiers .proj, j'ai créé mes propres compilations (uniquement les fichiers zip dans le répertoire de sortie). Nous utilisons également les tâches de la communauté MSBuild. Mon msbuild.proj pour mon application web (php) va comme ceci:TFS 2010, BuildAgent et MSBuild pour changelog.txt avec changeset

<?xml version="1.0" encoding="utf-8"?> 
<Project DefaultTargets="Default" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/> 
    <Target Name="Changelog"> 
     <!-- need to create changelog.txt (all checkin files comments) --> 
    </Target> 
    <Target Name="Zip" DependsOnTargets="Changelog"> 
     <ItemGroup> 
      <ZipFiles Include="**\*.*"/> 
     </ItemGroup> 
     <Zip Files="@(ZipFiles)" ZipFileName="$(OutDir)_myzip.zip" /> 
    </Target> 
    <Target Name="Default" DependsOnTargets="Zip"> 
     <Message Text="My Build Complete" /> 
    </Target> 
</Project> 

Ma question est de savoir comment écrire la cible « Changelog » qui va créer changelog.txt avec tous les commentaires de développeurs pour tous les temps fichiers d'enregistrement dans TFS. Si nécessaire, je peux modifier le fichier DefaultTemplate.xaml et/ou la définition de construction. BuildAgent est démarré en tant que SERVICE RÉSEAU et place le fichier sur le dossier de dépôt/partage réseau.

Répondre

1

Si vous utilisez TFS Build, le rapport Récapitulatif de construction vous donnera par défaut une liste des changesets associés pour cette construction (il s'agit de la liste des changesets depuis la dernière génération réussie).

Si vous voulez une liste de tous les changesets depuis le début des temps, vous allez devoir faire une certaine personnalisation. Vous avez deux options, créer une tâche MSBuild personnalisée ou créer une activité de workflow de build personnalisée. Je recommanderais ce dernier dans ce cas car c'est la nouvelle façon de faire les choses dans TFS 2010.

L'une ou l'autre approche est plutôt simple. Pour créer une activité de flux de travail personnalisée, consultez ce post de blog pour commencer: http://blogs.msdn.com/b/jimlamb/archive/2009/11/18/how-to-create-a-custom-workflow-activity-for-tfs-build-2010.aspx si vous choisissez d'utiliser la route MSBuild, voici un post pour vous montrer comment créer une tâche personnalisée: http://blogs.msdn.com/b/msbuild/archive/2006/01/21/515834.aspx et voici la référence de la méthode de l'API TFS Je vais probablement appeler pour obtenir une liste de changesets: http://msdn.microsoft.com/en-us/library/bb138960.aspx

1

À mon avis, il existe deux façons d'aborder ce problème. Le premier sera de personnaliser le fichier .proj et donc l'aspect Build. La deuxième façon sera d'utiliser quelque chose comme http://tfschangelog.codeplex.com application. ChangeLog permet aux utilisateurs de générer automatiquement des notes de publication à partir de TFS en fournissant des informations sur les projets, les branches et les modifications. Il extrait ensuite des informations sur chaque ensemble de modifications et leurs éléments de travail associés dans la plage donnée de changesets dans un fichier XML. Les utilisateurs peuvent utiliser cette application à partir de l'invite de commande (automatiser la génération de notes de mise à jour à l'aide d'une tâche planifiée) ou utiliser l'interface graphique pour générer des notes de mise à jour.

Espérons que cela aide.

Cordialement,

Dharmesh Shah.

Questions connexes