我是使用TFS生成的新手。我已经定义了一个作为持续集成运行的构建。它创建了一个drop文件夹,但没有任何内容。我如何把文件放在TFS生成放置位置
移动放置文件夹中的东西的最佳做法是什么?我看过一个Binaries文件夹,我需要将东西复制到那里,还是以某种方式修改TFSbuild.proj以将我想要的文件复制到drop文件夹?
我是使用TFS生成的新手。我已经定义了一个作为持续集成运行的构建。它创建了一个drop文件夹,但没有任何内容。我如何把文件放在TFS生成放置位置
移动放置文件夹中的东西的最佳做法是什么?我看过一个Binaries文件夹,我需要将东西复制到那里,还是以某种方式修改TFSbuild.proj以将我想要的文件复制到drop文件夹?
我好像得到它的工作,加入这个靠近我TFSBuild.proj
<Target Name="PackageBinaries">
<ItemGroup>
<FilesToDrop Include="$(SolutionRoot)\MyProduct\Installer\Bin\**\*.msi"/>
</ItemGroup>
<Message Text="[email protected](FilesToDrop)"/>
<Copy SourceFiles="@(FilesToDrop)"
DestinationFiles="@(FilesToDrop ->'$(BinariesRoot)\%(RecursiveDir)%(Filename)%(Extension)')"/>
</Target>
它复制想MSI文件到文件夹中的二进制文件其中正常TFS构建系统然后复制到放置位置结束。我注意到Binaries文件夹每次开始构建时都会被删除,因此您不必担心清理问题。
PackageBinaries目标似乎是您可以重写以执行此类事情的标准目标名称。
更新较新版本的TFS的可能有更好的方法!
这听起来像你想从工作区(或其他地方)复制杂项文件到放置位置?
上面的目标为您提供了一个如何创建目标以复制文件的示例,但您可能想知道如何将它连接到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)')" />