我知道有很多像这样的问题,但迄今为止我还没有找到一个好的解决方案。我见过的最好的解决方案是自制的,但在实施自定义工具之前,我想听听你的看法。所以我们去:使用不同的app.config设置自动部署到许多服务器?
我有一个.NET解决方案与几个Web应用程序和一些Windows服务。我想将这些应用程序部署到10-20个不同的服务器上 - 但每个服务器上的app/web.config文件可能有不同的值。
微软对这个问题的回答是在开发机器本地有10-20个不同的web.config文件,然后使用配置管理器来选择正确的。但这还不够好,因为开发人员不了解生产服务器设置,他们也不应该这样做!
理想的解决方案是包含某种类型的“部署模型”,其中生产服务器及其设置已定义,并且可以与某些部署脚本(可能为Powershell
)一起用作构建中的一个步骤服务器(我正在使用TeamCity
)。这可以通过在将解决方案复制到远程服务器之前替换配置设置来完成。但这是一项繁琐耗时的任务。
另一种解决方案可能是使用“configSource”指向一个固定名称的文件夹,但这里的问题是配置文件的某些部分(如serviceModel)不能与configSource一起使用。
所以我还没有找到最好的答案。有任何想法吗?
什么(其他)工具,你起诉?新的软件包管道? – 2011-12-20 11:31:37
那么我一直在使用的一些工具是:VS2010 - > SVN - > MSBuild - > TeamCity - >用于部署的自定义PS脚本。因为我有Web应用程序和Windows服务,所以我没有使用WebDeploy。 – lasseschou 2011-12-20 12:04:19
查看InRelease,它与TFS的整合比TeamC更好,但可能仍然可以用来解决您的问题(我是该产品的开发者):http://inrelease.incyclesoftware.com – joerage 2011-12-20 16:09:53