2014-06-20 91 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