I'm looking for a build automation solution for use with a Visual Studio solution space containing multiple projects of mixed source types (mainly Win32 C++ and C#). Also, all the code is stored in a Subversion repository. So it needs to go all the way from pulling down a working copy of the code, to compiling the source, to building the setup files.
我正在寻找一个构建自动化解决方案,用于包含多个混合源类型项目(主要是Win32 C ++和C#)的Visual Studio解决方案空间。此外,所有代码都存储在Subversion存储库中。因此,它需要从下拉代码的工作副本,编译源代码到构建安装文件。
Requirements are as follows:
要求如下:
Absolute Must Haves:
Absolute Must Haves:
- FREE
- Easy to use GUI (I can already write a bunch of NMake scripts...this is what I don't want to do)
- Subversion Integration (at the least be able to pull down the latest code)
- Multiple source Language Support (doubt this matters as it's built with VS in the end)
- End to End automation (one click build)
- Build profiles (i.e. Intermediary vs Release)
易于使用的GUI(我已经可以编写一堆NMake脚本......这是我不想做的)
Subversion集成(至少能够下拉最新的代码)
多源语言支持(怀疑这很重要,因为它最终是用VS构建的)
端到端自动化(一键构建)
构建配置文件(即中介与发布)
Things I would like
我想要的东西
- Source file find and replace (for automatically incrementing version information in header files)
- Email reporting
- Automatic builds after Subversion commits
- Web interface
- FTP integration
- Ability to auto-generate build file names with proper version strings
源文件查找和替换(用于自动递增头文件中的版本信息)
Subversion提交后自动构建
能够使用正确的版本字符串自动生成构建文件名
Things I don't need
我不需要的东西
- Unit Testing support
- Bug tracking integration
单元测试支持
错误跟踪集成
2 个解决方案
#1
NAnt and CruiseControl.Net do all of this except it has no GUI for creating the build scripts themselves. The GUI it does have is a web front end that allows you to monitor / force builds, as well as a system tray application which does the same. If GUI creation of the scripts is a really big requirement then final builder is one of your best options, however it will cost you money. I don't think you are going to get the GUI in this space for free.
NAnt和CruiseControl.Net完成所有这些工作,除了它没有用于创建构建脚本的GUI。它具有的GUI是一个允许您监视/强制构建的Web前端,以及执行相同操作的系统托盘应用程序。如果脚本的GUI创建是一个非常大的要求,那么最终构建器是您最好的选择之一,但它会花费您的钱。我不认为你会在这个空间免费获得GUI。
#2
Have you considered using MSBuild? It comes free with the .NET framework.
你考虑过使用MSBuild吗?它随.NET框架免费提供。
It would require a small amount of coding. For example, you'd have to create a new .net class (deriving from Task) that overrides the Execute function, then call out to SVN to update your source code. But the bulk of the set up would be in a build.xml file where you can specify solution file names, and the different configurations.
这需要少量编码。例如,您必须创建一个新的.net类(从Task派生)来覆盖Execute函数,然后调用SVN来更新源代码。但是大部分设置都在build.xml文件中,您可以在其中指定解决方案文件名和不同的配置。
A reasonable introduction is here: MSBuild
一个合理的介绍在这里:MSBuild
I understand why you'd want to do this through a GUI, but IMHO the flexibility you get using MSBuild is worth the extra effort of setting it up, while not being as complex as writing it completely from scratch in another scripting language.
我理解为什么你想通过GUI来实现这一点,但是恕我直言,你使用MSBuild获得的灵活性值得花费额外的努力来设置它,而不是像在另一种脚本语言中从头开始编写它那么复杂。
#1
NAnt and CruiseControl.Net do all of this except it has no GUI for creating the build scripts themselves. The GUI it does have is a web front end that allows you to monitor / force builds, as well as a system tray application which does the same. If GUI creation of the scripts is a really big requirement then final builder is one of your best options, however it will cost you money. I don't think you are going to get the GUI in this space for free.
NAnt和CruiseControl.Net完成所有这些工作,除了它没有用于创建构建脚本的GUI。它具有的GUI是一个允许您监视/强制构建的Web前端,以及执行相同操作的系统托盘应用程序。如果脚本的GUI创建是一个非常大的要求,那么最终构建器是您最好的选择之一,但它会花费您的钱。我不认为你会在这个空间免费获得GUI。
#2
Have you considered using MSBuild? It comes free with the .NET framework.
你考虑过使用MSBuild吗?它随.NET框架免费提供。
It would require a small amount of coding. For example, you'd have to create a new .net class (deriving from Task) that overrides the Execute function, then call out to SVN to update your source code. But the bulk of the set up would be in a build.xml file where you can specify solution file names, and the different configurations.
这需要少量编码。例如,您必须创建一个新的.net类(从Task派生)来覆盖Execute函数,然后调用SVN来更新源代码。但是大部分设置都在build.xml文件中,您可以在其中指定解决方案文件名和不同的配置。
A reasonable introduction is here: MSBuild
一个合理的介绍在这里:MSBuild
I understand why you'd want to do this through a GUI, but IMHO the flexibility you get using MSBuild is worth the extra effort of setting it up, while not being as complex as writing it completely from scratch in another scripting language.
我理解为什么你想通过GUI来实现这一点,但是恕我直言,你使用MSBuild获得的灵活性值得花费额外的努力来设置它,而不是像在另一种脚本语言中从头开始编写它那么复杂。