我是使用TFS构建的新手。我有一个定义的构建,作为持续集成运行。它会创建一个drop文件夹,但它没有任何内容。
在drop文件夹中移动内容的最佳做法是什么?我见过一个Binaries文件夹,是否需要将内容复制到那里,或者我是否以某种方式更改TFSbuild.proj以将我想要的文件复制到drop文件夹中?
答案 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可能有更好的方法!