CruiseControl.net(或任何CI服务器)可以做什么,而MSBuild或NAnt可以';T

CruiseControl.net(或任何CI服务器)可以做什么,而MSBuild或NAnt可以';T,msbuild,nant,continuous-integration,Msbuild,Nant,Continuous Integration,我问这个问题是因为我发现社区对各种生成引擎(如MSBuild和NAnt)的贡献确实包括CI服务器的所有升级任务,如从源代码管理获取版本、清理文件夹、更改生成编号、发送电子邮件等 这仅仅是因为它“侦听”源代码管理存储库上发生的更改吗?我还缺少什么?我相信我会回答您关于特定CI提供商及其功能的所有问题。Grzegorz Oledzki链接了一个很好的资源,用于查找多个CI解决方案之间的差异,但应该注意的是,MSBuild的目的是专门将代码转换为二进制代码,并由CI软件用于构建源代码。的确,它可以做其

我问这个问题是因为我发现社区对各种生成引擎(如MSBuild和NAnt)的贡献确实包括CI服务器的所有升级任务,如从源代码管理获取版本、清理文件夹、更改生成编号、发送电子邮件等


这仅仅是因为它“侦听”源代码管理存储库上发生的更改吗?我还缺少什么?

我相信我会回答您关于特定CI提供商及其功能的所有问题。

Grzegorz Oledzki链接了一个很好的资源,用于查找多个CI解决方案之间的差异,但应该注意的是,MSBuild的目的是专门将代码转换为二进制代码,并由CI软件用于构建源代码。的确,它可以做其他事情,但它的大部分任务都在这个领域内

除了您提到的收听repo之外,一些CI服务器还可以执行各种操作,如^1:

  • 多代理构建(不仅仅是多核,msbuild可以做到这一点,还有多机器)
  • 监视生成状态
  • 通知(电子邮件/sms/rss/whatnot)
  • 为损坏的构建分配责任
  • 行政特征
  • 支持XFDs(极端反馈设备)
  • 自动部署
通常,所有这些都来自一个方便的用户界面


1并非所有的CI软件都具有所有这些功能,它绝不意味着详尽无遗,而且存在一些重叠。

哇,这方面的答案太多了。至于CI系统可以做什么,构建脚本除了侦听您的版本控制系统之外不能做什么。。。对于初学者来说,像TeamCity这样的系统可以让您首先在构建服务器上测试代码,然后检查代码是否通过了所有初学者测试

我强烈建议使用CI服务器,但我更喜欢将所有生成逻辑保留在MSBuild文件中,并在CI服务器中保留所有发生故障时通知的对象等。将逻辑保留在生成文件中有助于您在自己的计算机上复制生成,并使在CI服务器中设置新项目或更改CI服务器生成项目的方式变得简单