管理每个环境的配置

时间:2015-12-29 10:08:51

标签: c# .net configuration app-config

如何指示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 config应该在appSettings中定义,或者如果不可能在其他外部源中定义。

管理它的最佳做法是什么? (不使用花哨的Chef服务器或配置服务器)。

**我也试图避免发布脚本操作。**

2 个答案:

答案 0 :(得分:2)

您需要使用XML配置文件转换(请参阅this MSDN article)。

由于为Web.config实现了默认配置转换,因此您需要使用Visual Studio扩展来将此功能应用于任何配置文件。 Slow Cheetah是一个很好的。

答案 1 :(得分:0)

另一个解决方案是使用环境变量: Using environment variables for .config file in .NET

然后引导应用程序在运行时更改app.config http://www.codeproject.com/Articles/12589/Modifying-Configuration-Settings-at-Runtime