我想为Visual Studio 2005中开发的非托管C ++代码设置构建服务器。构建服务器应该能够执行以下操作:
我最初一直在寻找使用CruiseControl和Ant。有更好的解决方案吗?也许是CruiseControl.Net和NAnt?
答案 0 :(得分:2)
NAnt需要相当多的工作才能有效地构建C ++。它确实是一个完整的.NET构建系统。我们正在为四个C ++平台和一套.NET工具构建我们的标题,并且需要一段时间才能满足我们的需求。例如,NAnt的C ++依赖性分析非常破碎,我们必须编写自己的。它有很多性能问题我们不得不去解决它。
所以不要双脚跳进去。做一些初步测试,以确保它真的可以做你想要的,并了解你需要为C ++修改它多少。
此外,我们还将CruiseControl.NET用于我们已经构建到我们正在开发的游戏中的一个工具中的一些NUnit内容。对此非常满意,设置起来很容易。大拇指在这里。
在之前的演出中,我在构建服务器上使用了您描述的确切场景中的Final Builder。使用Visual Studio完成本地构建。这是一个非常棒的产品,如果你有一点钱花的话,我会认真考虑。我们只有很好的结果。
在我现在的公司,我们选择了NAnt,因为我们不想为团队中的每位工程师购买FB。我们也不喜欢FB是如何闭源的。所以我们100%Nant并且喜欢它。花了一些时间才把它变成了形状!
答案 1 :(得分:2)
由于没有人提到,詹金斯是一个很好的CI,并且变得越来越普遍(免费也不会受到伤害):
易于安装,使用和监控,并与很多东西很好地集成(SVN,GIT等)。也非常可定制。需要5分钟才能启动并运行。
答案 2 :(得分:0)
我刚开始使用Visual Build Professional并给我留下了非常深刻的印象,您可以从这里下载功能齐全的30天试用版:
SVN也得到了完全支持。
答案 3 :(得分:0)
我们使用FinalBuilder构建我们的Visual Studio 2005项目,包括使用InstallShield打包最终的exes和dll,并将它们放在共享服务器上。
我们还telnet(从FinalBuilder)到许多其他平台(Unix / Linux / OpenVMS)并通过在那里运行makefiles来启动远程构建。
我们不使用连续版本,但有一个FinalBuilder服务器可以处理它,并免费获得FinalBuilder Professional许可证。
我们对FinalBuilder非常满意,它很容易掌握并且足够强大以解决大多数问题。
答案 4 :(得分:0)
我们使用CruiseControl.Net和NAnt(以及Subversion),我们对结果感到满意。
答案 5 :(得分:0)
除了Ant CruiseControl之外,还支持NAnt和Exec。
但如果你真的想要前卫,你可以考虑Rake(约:Rake,Getting Started with Rake on .Net)。
答案 6 :(得分:0)
Visual Studio 2005项目完全能够从命令行运行!只是做
devenv.com whatever.sln /build 'Release|Win32' /project whatever
(将whatever
替换为您的项目名称,将Release|Win32
替换为您需要的配置和平台。这可以通过CruiseControl或Jenkins或其他任何方式轻松运行。
答案 7 :(得分:0)
在Visual Studio 2010中,Microsoft最终将Visual C ++项目文件(.vcproj)的格式升级为其基于XML的NAnt克隆格式MSBuild,现在名为.vcxproj。这意味着C ++项目将在不费力的情况下使用该任务进行编译。
如果你能预见到你只有一个小团队和数量有限的版本,我会向NAnt推荐TeamCity(http://www.jetbrains.com/teamcity/)。 TeamCity是一个基于Java的CI服务器(更容易在Linux构建服务器上部署),支持单独的构建代理(因此您可以拥有多个Windows虚拟机或运行构建的专用框)。
TeamCity对基于MSBuild,NAnt和Ant的构建的支持非常出色,并且它具有非常好的基于AJAX的GUI,使用起来很愉快,并允许您从浏览器设置和配置项目。如果你越过免费版的20项目门槛,那么它就变得不合理了。
我可以推荐的另一个选项是Jenkins与NAnt,Ant,MSBuild或Jenkins可以支持的其他许多构建系统之一。 Jenkins是开源的,可以处理无限的项目,比如TeamCity,它可以在服务器上运行,同时将构建发送到单独的构建代理,并且它有许多C ++工具的插件(想想静态分析,单元测试和打包)。
Jenkins的网络界面不如TeamCity那么方便和美观,但它被广泛使用并且几乎可以插件。