2010-05-10 31 views
0

我目前正在使用具有相當多環境特定(Dev,UAT,Production)配置設置的系統。有沒有人有任何建議,以儘量減少在環境之間移動時配置文件所需的更改以及最大限度地減少配置文件中的數據重複?用於多種環境的一個配置文件

它主要是應用程序設置而不是用戶設置。

我做它目前的方式是與此類似:

<DevConnectionString>xyz</DevConnectionString> 
<DevInboundPath>xyz</DevInboundPath> 
<DevProcessedPath>xyz</DevProcessedPath> 
<UatConnectionString>xyz</UatConnectionString> 
<UatInboundPath>xyz</UatInboundPath> 
<UatProcessedPath>xyz</UatProcessedPath> 
... 
<Environment>Dev</Environment> 

然後,我有一個類,在環境中通過My.Settings類設置讀取(它的VB項目),然後使用它來決定要檢索的其他設置。這會導致過多的重複,但我不確定它是否值得。

回答

1

爲什麼不讓環境定義要讀取的配置文件,然後讓該文件鍵入而沒有前綴?這樣,你可以用相同的代碼解析不同的配置。

my.settings:請閱讀此處以確定要使用的設置文件。

<EnvironmentMapping> 
    <Environment>Dev</Environment> 
    <File>dev.settings</File> 
</EnvironmentMapping> 
<EnvironmentMapping> 
    <Environment>Uat</Environment> 
    <File>uat.settings</File> 
</EnvironmentMapping> 
<Environment>Dev</Environment> 

dev.settings:這些是開發環境的設置。只有Dev是選定的環境時纔會讀取。

<ConnectionString>devconnection</ConnectionString> 
<InboundPath>devinbound</InboundPath> 
<ProcessedPath>devprocessed</ProcessedPath> 

uat.settings:這些是UAT環境的設置。只有Uat是選定的環境時纔會讀取。

<ConnectionString>uatconnection</ConnectionString> 
<InboundPath>uatinbound</InboundPath> 
<ProcessedPath>uatprocessed</ProcessedPath> 
+0

一個有趣的選擇,謝謝。 – 2010-05-11 10:01:40