如何将文件放在TFS Build放置位置

时间:2010-05-06 09:52:01

标签: tfs tfsbuild

我是使用TFS构建的新手。我有一个定义的构建,作为持续集成运行。它会创建一个drop文件夹,但它没有任何内容。

在drop文件夹中移动内容的最佳做法是什么?我见过一个Binaries文件夹,是否需要将内容复制到那里,或者我是否以某种方式更改TFSbuild.proj以将我想要的文件复制到drop文件夹中?

2 个答案:

答案 0 :(得分:3)

听起来您想将工作区(或其他地方)的杂项文件复制到放置位置?

上面的目标为您提供了如何创建目标以复制文件的示例,但您可能想知道如何在TFSBuild.proj中将其连接起来。

执行此操作的一种简单方法是使用其中一个预定义的骨架目标,例如AfterDropBuild。如果您有一个类似于上面提到的用于复制文件的目标,您可以将其放在TFSBuild.proj中:

<CreateItem Include="$(SolutionRoot)\Source\RandomFilesInWorkspaceFolder\**\*.*">
  <Output TaskParameter="Include" ItemName="RandomFiles" />
</CreateItem>
<Copy SourceFiles="@(RandomFiles)" DestinationFiles="@(RandomFiles->'$(DropLocation)\RandomDestinationSubFolder\%(RecursiveDir)%(Filename)%(Extension)')" />

答案 1 :(得分:1)

我好像通过在TFSBuild.proj

的末尾添加它来实现它
<Target Name="PackageBinaries">
    <ItemGroup>
        <FilesToDrop Include="$(SolutionRoot)\MyProduct\Installer\Bin\**\*.msi"/>
    </ItemGroup>
    <Message Text="FilesToDrop=@(FilesToDrop)"/>
    <Copy SourceFiles="@(FilesToDrop)"
      DestinationFiles="@(FilesToDrop ->'$(BinariesRoot)\%(RecursiveDir)%(Filename)%(Extension)')"/>
</Target>

它将想要的msi文件复制到Binaries文件夹中,然后普通的tfs构建系统将其复制到放置位置。我注意到每次启动构建时都会删除Binaries文件夹,因此您不必担心清理。

PackageBinaries目标似乎是您可以覆盖的标准目标名称,用于执行此类操作。


更新更新版本的TFS可能有更好的方法!