【发布时间】:2012-01-28 14:18:33
【问题描述】:
也许这只是一个疯子的梦想,但是..
在我的公司,我们有一个大型 C# .NET 项目,有大约 25 个解决方案(非常旧)和大约 3.5 个 mio。地点我面临的问题是:构建时间太慢,现在使用 SSD(开发机器)需要 7 分钟,使用普通硬盘驱动器的 VM 需要 15 分钟以上(这将是我想要部署的 TeamCity 构建系统)。 我知道,构建系统应该是最快的,但短期内我无法改变。
我想缩短开发人员的提交-构建-单元测试反馈循环(最好现在在 Teamcity 机器上),只需编译上次提交所触及的项目,从例如获取所有其他程序集。本地 nuget 服务器(teamcity 服务器本身,版本 7.0)。
现在这将大大减少小提交的反馈循环(15 分钟到不到一分钟,考虑到 真正的单元测试)。
我知道这种部分编译的问题是可能会跳过编译错误(不匹配的接口可能会被忽视),但可以通过运行第二个(Teamcity?)构建服务器实例来缓解这种情况,该实例运行整个 enchilada,在平行线。但立即获得第一反馈对我来说非常很重要。
现在我的问题是:是否有任何构建系统/持续集成系统可以处理此任务?还是我必须编写自己的提交感知后台服务?这有点令人讨厌,因为我们使用 FinalBuilder 脚本,并且任何 API 似乎都无法读取该格式(但没有深入挖掘)。
P.S.:另外,我只想为上次提交更改的项目运行单元测试,或者至少优先考虑它们。但这是事后的想法。
【问题讨论】:
-
是的,看到了,但是.. 1) 它很旧,2) 许多答案不适用于 C#,3) 少数有帮助的答案(比如带有自定义 VS Addin 的答案)不支持任何链接,并且被埋得太深,我无法及时获得一些有价值的反馈
-
@hko 我知道这似乎是一个难以想象的点数浪费,但我会考虑在另一个问题上悬赏和/或关注另一边答案中的每个链接。
-
@RubenBartelink 有 78 个代表.. 是的,这有点苛刻 ;) 会考虑它;
-
@hko 不敢相信我建议过:D 请不要真的这样做!
标签: c# build compilation teamcity