【问题标题】:Want to copy build output to another directory under source control想要将构建输出复制到源代码控制下的另一个目录
【发布时间】:2014-04-23 18:19:10
【问题描述】:

我目前正在设置 TFS 2013 构建服务器。

我有几个不同的应用程序,共享一些通用代码。当在其中一个共享库上签入时,我希望 TFS 自动构建,并将其放置在 Source Control 下的另一个目录中。

构建服务器当前构建 DLL,但我无法让它们移动到源代码控制文件夹中。

前:

源代码管理

  • Sprint X

      - App 1
      - App 2
      - Common Libraries
            * Utilities
      - DLLs
    

当有人签入实用程序中的更改时,它应该编译 DLL 并将其移动到“DLLs”。当一个人获得最新消息时,他们在 DLL 文件夹中。

任何帮助将不胜感激

【问题讨论】:

    标签: c# dll tfs tfsbuild


    【解决方案1】:

    在这种情况下,通常最好使用 NuGet。但是,要回答您的问题,您需要执行以下操作

    在每个客户端构建的工作区中添加共享 DLL 的文件夹路径,并将客户端构建设置为触发持续集成。这样,当任何人签入共享 DLL 文件夹中的文件时,将为每个客户端触发构建。

    第二个是每次构建DLL时在shraed DLL文件夹中签入更新的DLL。您将需要修改您的构建工作流程,以便

    1) 检出 DLL 文件 2) 将 DLL 从输出路径复制到共享 DLL 文件夹 3) 签入DLL文件

    您可以使用 TFS Build Extensions (http://tfsbuildextensions.codeplex.com) 库来实现以上所有功能。步骤 (1) 和 (3) 可以使用 TFSSource 活动执行步骤 (2) 可以使用 File 活动完成。

    希望对你有帮助

    【讨论】:

    • 谢谢,我正在调查这个。现在构建服务说它找不到TF.exe,即使它在服务器上,我什至在工具路径中指定了它。我也可能会研究 Nuget 的可能性。如果您对此有任何好的建议,将不胜感激。
    • 如果传递的是ToolsPath,它需要是TF.exe的完整目录路径。如果未指定 ToolsPath,则活动默认使用环境变量 VS120COMNTOOLS,并尝试在 %VS120COMNTOOLS%\..\IDE\TF.exe 找到 TF.exe。
    • 设置 NuGet 服务器非常简单,最简单的是简单的文件夹共享。在 Visual Studio 中设置位置后,该文件夹中的所有包都将显示在 NuGet 包管理器中。在这种情况下,客户端应用程序的 NuGet 将确保在编译客户端时使用最新版本。您需要做的就是在 NuGet 包中创建程序集。同样,TfSBuildExtension 中有一个活动允许创建您的 NuGet 包。
    猜你喜欢
    • 2014-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-31
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多