我对将 MVC Web 应用程序部署到不同环境的最佳机制有一些疑问。以前我使用设置项目(.msi),但由于这些在 VS2012 中已停止使用,我希望转向替代方案。
让我解释一下我目前的设置。我目前有一个使用 TFSBuild 2010 和 Team Foundation Server 进行源代码控制的 CI 设置。
许多开发人员在他们的本地计算机上工作并签入 TFS 服务器。我们定期部署到单服务器开发环境和具有 2 台服务器的负载平衡 qa 环境。我们当前的流程包括安装一个 msi,它执行以下一些自定义操作:
- 使用 app_offline.htm 文件使当前应用脱机
- 在数据库脚本中运行(来自解决方案中的数据库项目)
- 修改 web.config(每个 qa 的 web 服务器不同)
- 标记代码
- 通过 http 请求预热每个部署的文件
- ETC
这是当前的过程。现在我想做一些改变。首先,我需要MSI的替代品。根据 som 研究,我认为通过 IIS 进行 Web 部署并使用 MsDeploy 是最好的选择。我可以使用 Web 配置转换来修改 Web 配置。这是正确的吗?如果是,我可以大致了解我需要做什么吗?
其次,我想通过 TFSBuild 设置持续交付,我不知道如何实现这一点,是否可以大致了解如何将它集成到我当前的设置中?我希望它在签入后由用户驱动,而不是签入驱动。此外,这是否也可以在解决方案中的数据库项目的数据库脚本中运行。
最后,还有一个生产环境,但我想手动部署这个——我的过程是否也可以产生一个我可以手动安装的工件?