【发布时间】:2010-11-27 05:30:09
【问题描述】:
在处理环境之间的 web.config 设置差异方面,有人有什么好的技巧吗?我考虑在我们的源代码控制系统中但在 Web 层次结构之外创建一个“配置”文件夹,并让部署过程复制适当的配置文件(web.dev.config、web.staging.config、web.production.config ) 在部署时放入 web 文件夹。我还看到了有关如何在应用启动时以编程方式更改配置设置(WCF 端点、连接字符串等)的帖子。
什么被认为是最佳实践,每个人在使用这些或其他方法时都有哪些经验?
2010 年 9 月更新
值得注意的是,Visual Studio 2010 通过web.config transforms 添加了此功能。当您使用构建配置管理器 (Build|Configuration Manager...) 为您的项目创建不同的配置(例如,Debug、Dev、Staging 和 Release)时,VS 会将 web.*.config 文件添加到解决方案中。默认 web.config 包含您将用于调试的基线设置。 web.release.config、web.staging.config 等包含 XSLT 转换,每当您基于活动构建配置发布项目时,这些转换都会应用。
【问题讨论】:
-
@PhilPursglove 这对企业库配置非常有用,但据我所知,它对其他配置设置没有帮助。环境之间的变化比连接字符串和数据库相关属性要多得多。
标签: asp.net deployment configuration web-config