【问题标题】:Manage configuration per environment管理每个环境的配置
【发布时间】:2015-12-30 18:19:46
【问题描述】:

如何指示 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 服务器或配置服务器)。

**我也在尽量避免后期脚本操作。**

【问题讨论】:

  • config transform(来源:msdn.microsoft.com/library/dd465318(v=vs.100).aspx)呢?这是你要找的吗?
  • @kienct89 我添加了另一个与我的真实案例更相似的案例。这样我就无法通过调试版本解决它...
  • 调试/发布只是 .NET 自动创建的两个 默认 配置。您可以通过转到Configuration Manager \ Active solution configuration \ New 添加任意数量的配置选项

标签: c# .net configuration app-config


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2023-04-10
      • 2018-11-09
      • 2014-04-20
      • 2012-11-25
      • 2020-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多