【问题标题】:How do I put files in the TFS Build drop location如何将文件放在 TFS 构建放置位置
【发布时间】:2018-02-03 01:10:47
【问题描述】:

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

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

【问题讨论】:

    标签: tfs tfsbuild


    【解决方案1】:

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

    上面的目标为您提供了如何创建目标以复制文件的示例,但您可能想知道如何将其连接到您的 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)')" />
    

    【讨论】:

      【解决方案2】:

      我似乎通过在我的 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 可能有更好的方法!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-27
        • 2014-05-14
        • 2014-09-16
        • 1970-01-01
        相关资源
        最近更新 更多