适用于Visual Studio MSBuild的现代生成工具

适用于Visual Studio MSBuild的现代生成工具,build,continuous-integration,build-automation,Build,Continuous Integration,Build Automation,我对构建自动化和持续集成是个新手,但我在这方面做了广泛的研究 首先,问题是:假设我有一个非托管VisualC++的.SLN文件,我可以用MSBuw构建它,我应该选择哪种现代构建工具,这使我能够轻松地执行预/后构建步骤? 我不想要像Ant、Nant、make这样的“旧”构建工具,因为它的XML很乱。我想要一种能让我以人类可读的方式自由表达我想做什么的东西。根据我的研究,Waf、Scons和Rake似乎符合要求 我的环境背景: 我的源代码管理是Subversion。 我的单元测试框架是GoogleT

我对构建自动化和持续集成是个新手,但我在这方面做了广泛的研究

首先,问题是:假设我有一个非托管VisualC++的.SLN文件,我可以用MSBuw构建它,我应该选择哪种现代构建工具,这使我能够轻松地执行预/后构建步骤? 我不想要像Ant、Nant、make这样的“旧”构建工具,因为它的XML很乱。我想要一种能让我以人类可读的方式自由表达我想做什么的东西。根据我的研究,Waf、Scons和Rake似乎符合要求

我的环境背景: 我的源代码管理是Subversion。 我的单元测试框架是GoogleTest,它生成与JUnit兼容的XML文件。 我选择了吉拉作为我的追踪工具。 我选择TeamCity作为我的CI服务器。 我使用可视化构建来构建.sln文件

我希望能够编写一个简单的构建脚本(可从我的CI服务器调用),该脚本将:

1) 创建CI服务器工作区目录。
2) 从SVN中检出代码。(我的repos设置为使用svn:externals从我的其他存储库中提取依赖项)
3) 运行Visual Build文件以生成.sln中的所有项目/平台组合。
4) 运行静态代码分析/动态代码分析工具
5) 从CI服务器的MsBuild(编译失败、静态/动态代码分析警告或单元测试失败等)收集结果

6) CI服务器会记录这些内容,并将其链接到JIRA。

除了编译代码外,Visual Build还可以用于获取源代码和运行分析工具(并且有一个很好的GUI,可以隐藏任何“xml混乱”。CI服务器应该有一种将外部日志集成到构建中的方法

Java构建工具Hudson有一个MSBuild和Nant插件。插件还包括fxcop和一些有趣的c#家伙使用的单元测试库

我想说这是市场上最好的免费的。它还可以调用命令行应用程序等


Karl

仅针对找到此页面的其他人(就像我一样): 查看以下用于CI生成服务器的工具: 脉搏 团队城市 AnthillPro(这是非常专业的,但也需要学习很多) 巡航控制


Pulse和TeamCity可以使用msbuild构建sln。还有很多不错的特性,我发现最好的(10+工具中的)工具是CI服务器。易于管理、支持和良好的特性。

使用MSBug和C++项目确实是一个混乱。因为VCPROJ不是一个原生MSBug格式,像.CSPROJ,但以MSBug的特殊方式处理。我不确定您的意思。我有一个包含多个项目的.sln文件。要编译它,我只需要键入msbuild.sln..,它就像一个符咒一样工作。那么,你真正的问题是什么?我真正的问题是:我应该选择哪种现代工具:Rake、Waf或Scons作为构建脚本。