2009-11-11 1 views
2

Dans le cadre de mon build TFS (2008), je souhaite copier manuellement les binaires et les vues d'un projet ASP.NET MVC dans un certain nombre d'emplacements différents. Tous les fichiers binaires et vues existants sont copiés avec succès. Malheureusement, toutes les vues nouvellement ajoutées sont ignorées lors de leur première génération. Si je commence alors une autre construction, ils sont inclus.Problèmes avec la cible de copie dans TFSBuild.proj

Voici un extrait des ajouts que j'ai fait à TFSBuild.proj ...

<ItemGroup> 
    <BinaryFiles Include="$(BinariesRoot)\Debug\_PublishedWebsites\SiteName\bin\*.*" /> 
    <ViewFiles Include="$(BinariesRoot)\Debug\_PublishedWebsites\SiteName\Views\**\*.aspx" /> 
    <ViewFiles Include="$(BinariesRoot)\Debug\_PublishedWebsites\SiteName\Views\**\*.ascx" /> 
</ItemGroup> 

<Target Name="AfterDropBuild"> 
    <Message Text="Starting deployment copy..." /> 
    <Copy SourceFiles="@(BinaryFiles)" DestinationFolder="T:\BuildWebSiteHosting\WebSite\bin\" ContinueOnError="false" /> 
    <Copy SourceFiles="@(ViewFiles)" DestinationFolder="T:\BuildWebSiteHosting\WebSite\Views\%(RecursiveDir)" ContinueOnError="false" /> 
    <Message Text="Deployment copy completed." /> 
</Target> 

Je soupçonne que la liste des fichiers à copier est en cours de construction trop tôt. Dois-je utiliser "AfterDropBuild" ou est-ce un meilleur nom de cible?

Répondre

4

J'ai réussi à résoudre celui-ci moi-même (c'était très utile juste de poser la question et d'organiser mes propres pensées!). Mes soupçons que les listes de fichiers étaient en construction trop tôt étaient corrects. En plaçant ItemGroup à l'intérieur de l'élément Target, vous pouvez spécifier quand il est évalué.

extrait corrigé est:

<Target Name="AfterDropBuild"> 
    <ItemGroup> 
    <BinaryFiles Include="$(BinariesRoot)\Debug\_PublishedWebsites\SiteName\bin\*.*" /> 
    <ViewFiles Include="$(BinariesRoot)\Debug\_PublishedWebsites\SiteName\Views\**\*.aspx" /> 
    <ViewFiles Include="$(BinariesRoot)\Debug\_PublishedWebsites\SiteName\Views\**\*.ascx" /> 
    </ItemGroup> 

    <Message Text="Starting deployment copy..." /> 
    <Copy SourceFiles="@(BinaryFiles)" DestinationFolder="T:\BuildWebSiteHosting\WebSite\bin\" ContinueOnError="false" /> 
    <Copy SourceFiles="@(ViewFiles)" DestinationFolder="T:\BuildWebSiteHosting\WebSite\Views\%(RecursiveDir)" ContinueOnError="false" /> 
    <Message Text="Deployment copy completed." /> 
</Target> 
Questions connexes