2010-05-06 85 views
5

我是使用TFS生成的新手。我已經定義了一個作爲持續集成運行的構建。它創建了一個drop文件夾,但沒有任何內容。我如何把文件放在TFS生成放置位置

移動放置文件夾中的東西的最佳做法是什麼?我看過一個Binaries文件夾,我需要將東西複製到那裏,還是以某種方式修改TFSbuild.proj以將我想要的文件複製到drop文件夾?

回答

1

我好像得到它的工作,加入這個靠近我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的可能有更好的方法!

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)')" />