【问题标题】:TFS Build 2013 drop locationTFS Build 2013 放置位置
【发布时间】:2016-03-28 23:44:44
【问题描述】:

我有 6 个构建服务器和多个构建定义。我希望放置位置是 C:\Builds\BuildDefinition.Name\BuildNumber。如果我将放置位置设置为 \\localhost\Builds,文件将放置在正确的位置,但我无法从 Visual Studio 访问放置位置(我想它正在查看本地计算机上的 \\localhost)。

构建定义不是由特定的构建服务器构建的,您通常会选择不忙的那个,因此我无法将放置位置硬编码为 \\BuildServer1\Builds。

如何将放置位置设置为 \\SelectedBuildServer\Builds\,以便它根据我在哪个构建服务器上排队而改变?

我不想为 drop 设置网络位置,因为 drop 的文件大小 >1gb,因此需要相当长的时间。我希望 drop 位于它们所构建的构建服务器上。

解决方案:

BuildDetail.DropLocation = "\\"
+ BuildDetail.BuildController.Name 
+ "\Builds\" 
+ BuildDetail.BuildDefinition.Name 
+ "\" + BuildDetail.BuildNumber + "\"

适用于:\\BuildServerNetworkLocation\Builds\BuildDefinitionName\BuildNumber

我的控制器名称与我的构建服务器网络位置相同。

【问题讨论】:

    标签: tfsbuild azure-devops


    【解决方案1】:

    您将不得不编辑构建模板 (.xaml),除非您想使用构建前/构建后的 powershell 脚本路线(但不知道这是否可行)。

    一个好地方(假设您使用默认的 TfvcTemplate.12)就在“关联自上次良好构建以来发生的变更集”步骤之后。

    您需要添加一个步骤以使用 GetBuildAgent 来获取 buildAgent 实例和/或 GetBuildDetail 以获取 buildDetail - 老实说,我不记得哪个包含构建服务器 ID,尽管您可以将其解析出来......

    buildAgent.GetExpandedBuildDirectory(buildDetail.BuildDefinition)
    

    ...如果你绝望了。之后,您应该能够将值附加到...

    buildDetail.DropLocation 
    

    ...财产,我认为它会为你做的。

    我刚刚离开构建服务器,但如果你遇到困难,我会看看我能找到什么。

    编辑:抱歉,刚刚看到有关构建名称的信息也需要。我相信您应该能够从与构建服务器 ID 相同的对象中获取它。

    【讨论】:

      猜你喜欢
      • 2010-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 2017-12-25
      • 2018-08-01
      相关资源
      最近更新 更多