2014-06-20 93 views
3

我有一个Windows应用程序,并通过单击一次进行部署。我的app.config中的appsetting有几个设置。有些设置是特定于部署的,如用于文件下载的web服务器源等。它将随着部署区域而变化。某些设置项目是应用程序特定的,在部署期间不会更改。将应用程序配置的appsetting部分分为两部分

<appSettings >  
    <add key="key1" value="Value111 changable with region" /> 
    <add key="Key2" value="Value222 changable with region" /> 

    <add key="key3" value="Value333 NOT changable with region" /> 
    <add key="Key4" value="Value444 NOT changable with region" /> 

</appSettings > 

现在我需要将我的appsettings分成两个app.config文件。 我想将key1和key2放在单独的配置文件中。我怎么做。

+0

你是什么意思多变?他们将如何改变? – Plutonix

+0

你想如何/何时开关? –

+0

摆弄额外的配置并不容易。在同一个文件中使用Region1Key1和Region2Key1并使用一个小帮助方法进行阅读也可以实现这一点。 –

回答

11

使用appSettings file attribute并为每个部署区域指定其文件版本。

的app.config

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <appSettings file="regionsettings.config"> 
     <add key="key1" value="default value" /> 
     <add key="commonKey" value="common value" /> 
    </appSettings> 
</configuration> 

regionsettings.config区域1):

<?xml version="1.0" encoding="utf-8" ?> 
<appSettings> 
    <add key="key1" value="region 1" /> 
</appSettings> 

regionsettings.config区域2):

<?xml version="1.0" encoding="utf-8" ?> 
<appSettings> 
    <add key="key1" value="region 2" /> 
</appSettings> 

或者不喜欢亨克建议:

<add key="region1.key1" value="region1key1 value" /> 
<add key="region2.key1" value="region2key1 value" /> 
+0

我确实尝试过这个方法。但是我的密钥1没有被新的值重写。 – Abbi

+0

不知道有什么问题。这些文件在同一目录中吗?配置文件是否格式良好? – Jasen

+0

Region settings.config不会让节点正确吗? – Abbi