我们目前有2个解决方案,它们之间共享多个项目,并且有一些项目对每个项目都是独一无二的。我们目前为每个设置为Gated Checkin的解决方案都有一个构建定义。
不幸的是,似乎设置了gated checkins的多个定义意味着如果我对其中一个共享项目进行更改,它只会运行一个定义。在一个完美的世界里,我希望它在这种情况下建立两种解决方案。
我知道我可以创建一个构建两个解决方案的构建定义,这在所讨论的场景中效果很好,但是如果我正在修改一个解决方案独有的项目,它仍将构建两个解决方案,呃。
有没有办法配置我们的构建,以便我们获得两全其美?我希望保证共享代码的一致性正确地适用于这两种解决方案,但我也希望构建不会花费两倍的时间进行仅影响一个或另一个解决方案的更改(到目前为止我们最常见的用例)。
或者我只是坚持一个或另一个的权衡?
答案 0 :(得分:0)
您目前的基本问题是“如何识别变化”?无论是共同项目还是修改过的独特项目。我不认为在构建代码时有任何简单的方法来识别它。
您不是最佳解决方案的一个选择是将常见项目分离到另一个解决方案中,该解决方案将DLL编译并放置到唯一解决方案使用的公共位置。这样,您可以拥有3个独立的门控签入,如果对常见解决方案进行更改,则可以在同一构建定义中编译两个唯一解决方案。如果不是,您可以在自己的构建定义中编译公共和唯一的解决方案。