管理每个环境的配置
Manage configuration per environment
如何指示 app.config 对每个环境使用不同的引用?
例如:我有一个包含 3 个文件夹的配置文件夹 - Dev、QA 和 Prod
- 配置
- 开发
* AppSettings.config
- 质量保证
* AppSettings.config
- 产品
* AppSettings.config
我的app.config有这个参考
<appSettings configSource="Configuration\Dev\AppSettings.config" />
我想要类似的东西
<appSettings configSource="Configuration\[$ENV]\AppSettings.config" />
$ENV 配置应在 appSettings 中定义,如果不可能,则应在其他外部源中定义。
此外,管理它的最佳做法是什么? (不使用花哨的 Chef 服务器或配置服务器)。
**我也在努力避免 post 脚本操纵。**
您需要使用 XML 配置文件转换(参见 this MSDN article)。
由于 Web.config
实现了默认配置转换,您需要使用 Visual Studio 扩展才能将此功能应用于任何配置文件。 Slow Cheetah 不错。
另一个解决方案是使用环境变量:
Using environment variables for .config file in .NET
然后bootstrap应用程序在运行时更改app.config
http://www.codeproject.com/Articles/12589/Modifying-Configuration-Settings-at-Runtime
如何指示 app.config 对每个环境使用不同的引用?
例如:我有一个包含 3 个文件夹的配置文件夹 - Dev、QA 和 Prod
- 配置
- 开发
* AppSettings.config
- 质量保证
* AppSettings.config
- 产品
* AppSettings.config
我的app.config有这个参考
<appSettings configSource="Configuration\Dev\AppSettings.config" />
我想要类似的东西
<appSettings configSource="Configuration\[$ENV]\AppSettings.config" />
$ENV 配置应在 appSettings 中定义,如果不可能,则应在其他外部源中定义。
此外,管理它的最佳做法是什么? (不使用花哨的 Chef 服务器或配置服务器)。
**我也在努力避免 post 脚本操纵。**
您需要使用 XML 配置文件转换(参见 this MSDN article)。
由于 Web.config
实现了默认配置转换,您需要使用 Visual Studio 扩展才能将此功能应用于任何配置文件。 Slow Cheetah 不错。
另一个解决方案是使用环境变量: Using environment variables for .config file in .NET
然后bootstrap应用程序在运行时更改app.config http://www.codeproject.com/Articles/12589/Modifying-Configuration-Settings-at-Runtime