C'est le modèle que j'utilise normalement pour ajouter des étapes au rapport de construction dans TFS 2008. (Voir http://code.msdn.microsoft.com/buildwallboard/ pour l'exemple complet que je l'habitude d'utiliser dans mon équipe pour le parle)
Fondamentalement, la magie est que TFS2008 vous propose une tâche personnalisée appelée "BuildStep". Voici la section où je produis et installateur MSI et construire les étapes de construction appropriées dans le rapport:
<Target Name="PackageBinaries">
<!-- create the build step -->
<BuildStep TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
BuildUri="$(BuildUri)"
Message="Creating Installer"
Condition=" '$(IsDesktopBuild)' != 'true' " >
<Output TaskParameter="Id"
PropertyName="InstallerStepId" />
</BuildStep>
<!-- Create the MSI file using WiX -->
<MSBuild Projects="$(SolutionRoot)\SetupProject\wallboard.wixproj"
Properties="BinariesSource=$(OutDir);PublishDir=$(BinariesRoot);Configuration=%(ConfigurationToBuild.FlavourToBuild)" >
</MSBuild>
<!-- If we sucessfully built the installer, tell TFS -->
<BuildStep TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
BuildUri="$(BuildUri)"
Id="$(InstallerStepId)"
Status="Succeeded"
Condition=" '$(IsDesktopBuild)' != 'true' " />
<!-- Note that the condition above means that we do not talk to TFS when doing a Desktop Build -->
<!-- If we error during this step, then tell TFS we failed-->
<OnError ExecuteTargets="MarkInstallerFailed" />
</Target>
<Target Name="MarkInstallerFailed">
<!-- Called by the PackageBinaries method if creating the installer fails -->
<BuildStep TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
BuildUri="$(BuildUri)"
Id="$(InstallerStepId)"
Status="Failed"
Condition=" '$(IsDesktopBuild)' != 'true' " />
</Target>
Alors d'abord, je crée l'étape de construction et enregistrer l'identifiant de l'étape dans un propery appelé InstallerStepId. Après avoir effectué ma tâche, j'ai défini le statut de cette étape sur Succeeded. Si des erreurs se produisent au cours de l'étape, je définis l'état de cette étape sur Échec.
Bonne chance,
Martin.
C'est EXACTEMENT! Merci!!!! –
Je viens de le tester. Cela fonctionne très bien. Merci! –