【发布时间】:2016-01-22 19:23:58
【问题描述】:
我有一个带有 C++ dll、lib 和 exe 的旧系统。 我们根据 2008 年或 2012 年构建。
很明显,如果 2008 dll 通过 TeamCity 意外添加到 2012 构建中。那会很糟糕。崩溃。反之亦然。
那么有没有人知道让 TeamCity 阻止这种情况发生的方法。我觉得这一定是可能的,因为 TeamCity 运行构建并且因此“知道”每个工件是如何创建的。肯定有某种方法可以创建一条规则或类似“此版本只有 2008 年的工件,否则会出错”之类的规则?
我可以设置 TeamCity 来阻止意外的 2008 和 2012 构建混合发生吗? (不使用魔法)。
塔!
例子:
My2008TeamCity 构建(使用 2008 构建的产品) 需要工件 a2008、b2008、c2008
My2012TeamCity 构建(使用 2012 构建的产品) 需要工件 a2012、b2012、c2012
工件是 DLL,仅在运行时加载。
最近我们运行了 My2008TeamCity 构建。 一些工件被错误地设置,通过 TeamCity 来自 2012 年的构建。 即 a2012 作为工件添加到 2008 版本中。
由于 DLL 仅在运行时加载运行,因此直到手动运行代码并命中该部分代码时我们才注意到问题。
现在想象一个巨大的系统,有大量的工件,许多开发人员不断地在子项目上工作……突然感觉需要一些可以防止这种情况发生的东西。
理想情况下,我希望 TeamCity 说“不是这个工件是针对 2012 年构建的,而您正在运行 2008 年的构建”并且构建失败。所以我们可以修复它。 X
【问题讨论】:
标签: c++ visual-studio teamcity