与asp.net一起使用的构建自动化和部署流程是什么?

时间:2010-02-19 22:31:47

标签: asp.net build-automation cruisecontrol.net web-deployment automated-deploy

我正在寻找一些自动进行项目构建和部署的建议。

我们当前的开发设置使用ASP.NET,SVN,CCNET和MSBuild脚本进行开发服务器构建。我想切换到Cruise而不是CCNET,虽然我不确定这是否给了我额外的东西,我还没有。

我想要自动化的是从完成自动构建到使用新更改更新实时网站的过程。站点更新可以包括基站更新以及客户端更新,这些更新可以是代码和/或数据库更改,因此流程需要足够灵活,以便它可以处理这些场景。

我的灵感来源之一来自this video以及每月花在无休止上的时间。

3 个答案:

答案 0 :(得分:4)

对于较小或个人项目,我建议使用JetBrains的免费(和优秀)TeamCity之类的东西。单元测试自动化,持续集成以及构建后发生的事情的规则(包括将其移动到不同位置)。

对于大型团队,我实际上已经以自定义MSBuild任务的形式发现了一些构建自动化,并且RoboCopy效果最好。手动推广环境之间的构建和使用MSBuild& RoboCopy自动化这个过程的一部分可以在环境之间创建干净的中断(只有很少的'oops我并不是要推动那些'错误)。它还允许我们在推广之前进行质量检查审核。

2014年7月31日更新:

我已成功使用custom TFS build templates。它们有点复杂,但你可以用它们做很多很酷的事情。

对于在GitHub上托管的开源项目(如NuGet库),我认为你无法击败AppVeyor。我有一些像Mailchimp.NET这样的项目有完整的构建和NuGet部署自动化。

答案 1 :(得分:0)

我过去曾经使用过Nant,并且在运行类似的任务时运气很好。您可以使用自动构建将其踢开。 (http://nant.sourceforge.net/

如果您想要更全面的内容,可以查看wix(http://wix.sourceforge.net/

现在你真的确定自动构建的所有内容都会启动你想要更新实时网站吗?或者你的意思是你使用cc工具开始构建,然后生成一个构建才能上线?

当有人签入新版本的文件时,我不想让实时网站更新。

您的数据库更新可能是最具挑战性的方面。但是,只要为databvase更新签入的内容是更改脚本,它就不错了。

答案 2 :(得分:0)

用于部署代码更改的两个主要功能听起来如下:1。复制文件和2.执行DB脚本更改。如果你看一下使用MsBuild Community Tasks,有很多方便的构建任务可以帮助你一路走来。 SqlExecute和RoboCopy听起来就像你需要使用它们一样。这将要求您修改项目文件以扩展其构建行为,但一旦完成,您将能够“编写”正在完成的手动部分。