如何使用TFSBuild for MVC应用程序设置连续部署



我对将MVC web应用程序部署到不同环境的最佳机制有一些疑问。以前我使用过安装项目(.msi的),但由于这些项目在VS2012中已经停止,我希望改用其他项目。

让我解释一下我目前的设置。我目前使用TFSBuild 2010和Team Foundation Server进行CI设置,用于源代码管理。

许多开发人员在本地计算机上工作,并签入TFS服务器。我们定期部署到单服务器开发环境和具有2台服务器的负载平衡qa环境。我们目前的流程包括安装一个msi,它可以执行以下一些自定义操作:

  • 使用app_offline.htm文件使当前应用程序脱机
  • 在数据库中运行脚本(来自解决方案中的数据库项目)
  • 修改web.config(qa的每个web服务器都不同)
  • 标记代码
  • 通过http请求预热每个部署的文件
  • 等等

这是当前过程。现在我想做一些改变。首先,我需要msi的替代品。根据som研究,我认为通过IIS进行web部署并使用MsDeploy是最好的选择。我可以使用网络配置转换来修改网络配置。这是正确的吗?如果是,我能大致了解我需要做什么吗?

其次,我想通过TFSBuild设置连续交付,我不知道如何实现这一点,有可能了解如何将其集成到我当前的设置中吗?我希望它在签入后由用户驱动,而不是由签入驱动。此外,这是否也可以在解决方案中的数据库项目的数据库脚本中运行。

最后,还有一个生产环境,但我想手动部署它——我的流程是否也能生成一个可以手动安装的工件?

Vishal Joshi在他的博客上有一些不错的信息,http://vishaljoshi.blogspot.com/2010/11/team-build-web-deployment-web-deploy-vs.html.它的缺点是,您的部署密码包含在您传递给msbuild的属性中。

Syed Hashimi也在另一个问题"团队构建:使用MSDeploy本地发布"中发布了一些相关信息。

最新更新