Domanda

Come parte del mio TFS (2008) Anno di costruzione voglio copiare manualmente i file binari e viste di un progetto ASP.NET MVC per un certo numero di luoghi diversi. Tutti i binari esistenti e le viste vengono copiati correttamente. Purtroppo, però, tutte le viste appena aggiunti vengono ignorati durante la loro prima generazione. Se dunque io comincio un'altra costruzione, essi sono inclusi.

Ecco un frammento delle aggiunte che ho fatto a 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>

Ho il sospetto che l'elenco dei file da copiare è in costruzione troppo presto. Dovrei usare "AfterDropBuild" o è il loro migliore nome di destinazione?

È stato utile?

Soluzione

Sono riuscito a risolvere questo uno io (era molto utile solo porre la domanda e l'organizzazione miei pensieri!). I miei sospetti che le liste dei file sono state costruite troppo presto erano corrette. Posizionando l'ItemGroup all'interno dell'elemento di destinazione è possibile specificare quando viene valutato.

frammento corretto è:

<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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top