由于我的TFS(2008)构建的一部分我要的二进制文件和一个ASP.NET MVC项目的意见手动复制到多个不同的位置。所有现有的二进制文件和视图复制成功。然而不幸的是,任何新添加的意见他们的第一个构建过程中被忽略。如果我然后启动另一个构建,它们被包含。

下面是我给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>

我怀疑是要复制的文件列表中正在修建为时尚早。我应该用“AfterDropBuild”或者是他们的一个更好的目标的名字吗?

有帮助吗?

解决方案

我设法解决这个我自己(这是非常有益的只是问的问题,并组织我自己的想法!)。我的文件的名单正在太快内置怀疑是正确的。通过将的ItemGroup目标元素中时,其被评估,你可以指定。

更正片段是:

<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>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top