Question

Dans le cadre de mon TFS (2008) build Je veux copier manuellement les binaires et les vues d'un projet ASP.NET MVC à un certain nombre d'endroits différents. Tous les binaires existants et les vues sont copiés avec succès. Malheureusement, cependant, tout sont ignorés lors de leur première construction vues récemment ajoutés. Si je puis commencer une nouvelle construction, ils sont inclus.

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-leur un meilleur nom cible?

Était-ce utile?

La solution

J'ai réussi à résoudre ce moi-même (il a été très utile simplement poser la question et d'organiser mes propres pensées!). Mes soupçons que les listes de fichiers ont été construits trop tôt étaient corrects. En plaçant le ItemGroup dans l'élément cible, vous pouvez spécifier quand il est évalué.

Correction extrait 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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top