【发布时间】:2016-01-21 19:56:00
【问题描述】:
我把这分为两个问题,但解决其中任何一个都会解决另一个问题。
问题 1: 当我使用下图底部的部分并添加“要发布的配置”时,构建不会触发发布管理。
我查询了几个小时的构建日志,发现当它发现配置“与当前不匹配”时,它停止了发布
如果 ConfigurationsToRelease 匹配当前 初始属性值 条件 = 假 最终属性值 条件 = 假 最终属性值 条件 = 真
在更多的文字之前,我将展示一张总结它的图片: the build definition and ms build logs
在默认情况下,要发布的配置为空白,发布管理将从这一点继续并在日志中写入“发布构建”(作为发生的命令)并且构建将触发发布管理。
如果您查看我的 tfs 构建配置,您会发现它与上面的常规 ms 构建配置完全相同,但我仍然收到不匹配的错误。 无论如何,我只有一个对话框可以在构建定义中填写我的配置,如上图中的“配置对话框”所示。
前几天我通过添加发布配置成功地在同一个项目中以这种方式发布了一次或两次,它以某种方式工作,但随后停止工作(工作一两次作为故障,我认为那里缓存了一些东西)但是 99 % 的其他尝试失败了,自从几个月前我第一次尝试它以来,它总是阻止我的触发器从 tfs 释放。 这里有人经历过吗?我看了很多地方,发现只有一个人抱怨它。他的解决方案是删除它(不完全是解决方案) 是否有可以解决此问题的构建参数? (/p:something=something)
问题 2:如果有人可以用不同于 rm 配置的方式解决它,那么我不需要解决问题 1。
对于任何对我什至弄乱构建定义的发布配置部分感兴趣的人来说,这是因为我希望 rm 在 rm 干预之前等待所有转换发生,这似乎是一种方式告诉 rm ,好的伙计,看到了吗?你有 2 个配置等待他们的构建。
问题是,默认情况下,当该配置部分为空白时,rm 会妨碍 tfs build 而 tfs build 会妨碍 rm,类似于循环等待。当 tfs build 正在等待 rm 完成它在第一次构建后运行时,rm 期望两个转换后的文件夹都存在于构建输出中,tfs 想要继续构建第二个配置(和转换)但 rm 已经参与其中,正在寻找它的第二个配置,当找不到它时中断构建,因此永远不会创建第二个配置,而 rm 仍在等待它,而 tfs build 等待 rm 和构建中断。令人困惑?再次阅读并查看下面的图片,因为它很有趣。
为了清楚起见,更多信息: RM 的下一阶段是尝试在构建输出文件夹已经存在之前从它那里获取一些东西。 例如,如果我将 Release build 设置为 true ,它只会构建第一个配置(创建一个文件夹,如下图),rm 将在第一步成功(QA.Release),并继续海峡尝试获取 Release 为它的下一阶段,但它尚未由 TFS Build 构建,它等待 rm 完成它在 tfs 构建工作中间的奇怪干预。就像我上面所说的,我确信我已经在我的一个尝试构建中看到它工作过一次或两次。
【问题讨论】:
标签: msbuild tfsbuild transformation release-management ms-release-management