我有6个构建服务器和多个构建定义。我希望drop位置为C:\ Builds \ BuildDefinition.Name \ BuildNumber。如果我将放置位置设置为\\ localhost \ Builds,文件将被删除到正确的位置,但我无法从Visual Studio访问放置位置(我想它在本地计算机上查看\\ localhost然后)。
构建定义不是由一个特定的构建服务器构建的,您通常选择一个不繁忙的构建定义,因此我无法将删除位置硬编码为,例如,\\ BuildServer1 \构建。
如何将放置位置设为\\ SelectedBuildServer \ Builds \,以便根据我为构建队列排队的构建服务器而改变?
我不想为丢弃设置一个网络位置,因为丢弃的文件大小不超过1GB,因此需要很长时间。我希望drop在本地构建它们构建的服务器上。
解决方案:
BuildDetail.DropLocation = "\\"
+ BuildDetail.BuildController.Name
+ "\Builds\"
+ BuildDetail.BuildDefinition.Name
+ "\" + BuildDetail.BuildNumber + "\"
适用于:\\ BuildServerNetworkLocation \ Builds \ BuildDefinitionName \ BuildNumber
我的控制器名称与我的Build Server网络位置相同。
答案 0 :(得分:1)
您将不得不编辑构建模板(.xaml),除非您想要进行pre / post-build powershell脚本路由(不知道这是否会起作用)。< / p>
一个好位置(假设您使用默认的TfvcTemplate.12)将在&#34;关联自上次良好构建后发生的变更集&#34;步骤
你需要添加一个步骤来使用GetBuildAgent为buildDetail获取buildAgent实例和/或GetBuildDetail - 我真的不记得哪个包含构建服务器ID,尽管你可以解析它......
buildAgent.GetExpandedBuildDirectory(buildDetail.BuildDefinition)
......如果你绝望了。之后,您应该能够将值附加到...
buildDetail.DropLocation
...属性,我认为会为你做这件事。
我刚刚离开构建服务器,但如果你遇到困难,我会看到我能找到的东西。
编辑:抱歉,刚看到有关构建名称的内容也被通缉。我相信你应该能够从与构建服务器id相同的对象中获取它。