2010-06-28 4 views
4

Il semble que le code que j'ai placé dans la cible BeforeBuild ne fonctionne pas correctement.MSBuild Target BeforeBuild ne s'exécute pas

Voici ce que j'ai:

<Target Name="BeforeBuild" > 
    <Message Text="Before Build" /> 
</Target> 

Je ne peux pas voir la sortie des messages dans le journal de construction lorsque la construction fonctionne. Y a-t-il quelque chose qui ne va pas dans la façon dont j'ai formaté ceci ou doit-il être dans un endroit spécifique du script? Est-ce que je cherche même au bon endroit pour ces messages?

EDIT: changer l'importance à la haute semble faire aucune différence

+0

Comment lancez-vous le script? Où cherchez-vous le message? Essayez d'ajouter l'attribut Importance = "high" à la tâche de message. –

+0

Je regarde dans le journal de construction - est-ce le mauvais endroit? –

+0

C'est le bon endroit. Pourriez-vous coller le contenu du fichier du projet ici? –

Répondre

0

Vous devez remplacer correctement la cible de construction Avant. La méthode la plus simple consiste à insérer le paramètre override before tag ou à déclarer cette tâche en tant que DefaultTargets.

<Project DefaultTargets="DesktopBuild" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> 
    <!-- Override TFS build targets and run custom made ones --> 
    <Target Name="BeforeCompile" DependsOnTargets="VersionAssemblies"></Target> 
    <Target Name="AfterCompile" DependsOnTargets="GetTime;RunTests;CreateHTMLReport;Mail"></Target> 
    <Target Name="AfterDropBuild" DependsOnTargets="RemovePrevContent;CopySrcBinaries;ZipBinPackages;CopyAllContent;RemoveBindings"></Target> 

</Project> 
+0

Lorsque je redéfinir BeforeCompile, cela fonctionne. Mais redéfinir BeforeBuild ne le fait pas. Spécifier DefaultTargets ne semble pas avoir d'importance - s'il y a quelque chose dans le fichier .proj pour la solution, il semble l'utiliser comme une préférence. –

5

Voir la réponse à cette question MS-Build BeforeBuild not firing

Vous avez juste besoin de déplacer la cible BeforeBuild afin qu'il apparaît après la ligne qui importe Microsoft.CSharp.targets.

Questions connexes