从自定义位置合并app.config

时间:2013-10-30 19:01:18

标签: c# .net app-config

我有一个场景,我需要在启动时读取环境变量,然后根据ENV变量的值,我需要将配置文件与App.config文件合并。

E.g。

MyApp.exe
MyApp.exe.config
Stage\MyApp.exe.config
Live\MyApp.exe.config

一开始 - 如果Environment变量= Stage,则在Stage文件夹中合并配置文件 - 如果Environment变量= Live,则在实时文件夹中合并配置文件

如果我在默认的MyApp.exe.config中有以下内容

<appSettings>
 <add key="SomeKey" value="SomeValue">
</appSettings>

然后在Stage \ MyApp.exe.config

中有以下内容
<appSettings>
  <add key="SomeKey" value="Some NEW Value">
</appSettings>

我希望我的应用程序将SomeKey的值读作“Some NEW Value”。

我似乎无法找到一种干净的方法来实现这种精确的方法。

由于 瓦里克

1 个答案:

答案 0 :(得分:0)

您可能希望在Visual Studio中使用构建事件。

http://msdn.microsoft.com/en-us/library/42x5kfw4(v=vs.90).aspx

您可以使用该变量复制覆盖预构建事件中的app.config:

$(ConfigurationName)

如果配置名称为DEV,则将app.config.DEV复制到app.config

如果配置名称为PROD,则将app.config.PROD复制到app.config