我们的主网站是 10 个独立的 ASP.NET 项目和应用程序的集合。目前,在新服务器上进行完整部署需要运行十个单独的 msdeploy 作业;每个应用程序都被构建、配置(使用配置转换)和打包,但我们没有任何解决方案可以将所有包部署为单个操作。
我可以看到几种可能在这种情况下起作用的可能性,但我很想听听任何成功或失败的人在设置类似的东西方面的意见:
一个包含包和 deploy.cmd 脚本的文件夹,其中包含一个“主脚本”,它将依次调用每个单独的应用程序脚本并将该应用程序部署到目标服务器。
使用暂存服务器,我们使用生产配置从 TeamCity 部署每个包的最新版本,然后使用 msdeploy 将该服务器捕获到一个巨大的 msdeploy ZIP 包中,然后将其作为单个 msdeploy 步骤部署到每个生产服务器上。
创建一个单一的、巨大的 Visual Studio 解决方案,它引用我们代码库中的每个项目(可能通过 svn:externals?),编译和交叉引用它们,因此支持使用单个 msbuild 作业来创建包含我们整个代码库的巨大单体包,从源代码管理中的最新版本构建并针对目标环境进行配置。
我研究了Troy Hunt 的优秀“你部署错了”系列,以及Scott Hanselman 的“Web 部署变得很棒”文章,但我认为我正在寻找一种超越这两种方法的方法,它包含多个项目和应用程序不必一步从源代码构建它们 - 有什么想法吗?