Pregunta

Como parte de mi TFS (2008) acumulación quiero copiar manualmente los archivos binarios y Vistas de un proyecto ASP.NET MVC para un número de diferentes lugares. Todos los binarios y las vistas existentes se copian correctamente. Desafortunadamente, sin embargo, los puntos de vista recién añadidos se tienen en cuenta durante su primera construcción. Si a continuación, empezar otra construcción, que se incluyen.

Aquí hay un fragmento de las adiciones que he hecho 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>

Sospecho que la lista de archivos a copiar se está construyendo demasiado pronto. ¿Debo utilizar "AfterDropBuild" o es su mejor nombre de destino?

¿Fue útil?

Solución

Me las arreglé para resolver este uno yo mismo (que era muy útil acaba de hacer la pregunta y la organización de mis propios pensamientos!). Mis sospechas de que las listas de archivos se están construyendo demasiado pronto eran correctas. Al colocar el ItemGroup el interior del elemento de destino se puede especificar cuando se evalúa.

fragmento corregido es:

<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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top