2008-09-24 55 views
2

我有一個依賴於某些內部Web服務的應用程序,因此我們希望我們的開發和登臺配置指向Web服務的開發和登臺服務器。根據構建常量修改配置文件

現在,這意味着手動編輯我的app.config文件以指向適當的URL。這不僅是一個麻煩,而且很容易出現人爲錯誤(「哎呀,我沒有刪除該生產URL?」可能會導致許多問題)。

在代碼中的地方極少數,我用的是

#if DEBUG 
    // do something 
#endif 

預處理語句,不知道是否類似的東西可以在app.config中的值來完成。我已經能夠使用我的應用程序設置完成此操作,因爲這些值可以在代碼中訪問。

我知道後構建腳本,但似乎有可能比編寫例程每次我構建時創建app.config XML更簡單的方法。有什麼建議麼?

這是針對C#和.NET 3.5的,它既包含舊的「Web引用」,也包含較新的WCF「Web服務」引用。

回答

3

我們使用SourceForge中的一個名爲XmlPreprocessor的程序來處理這個問題。它允許您在配置文件和不同的值文件中創建參數來填充它們。

鑑於以下文件:

的app.config

... 
<importantSetting>$importantSettingValue$</importantSetting> 
... 

qavalues.xml

... 
<importantSettingValue>QAvalue</importantSettingValue> 
... 

prodvalues.xml

... 
<importantSettingValue>PRODvalue</importantSettingValue> 
... 

沿行的命令行以下是在正確的地方獲得正確值所需要的。

XmlPreProcess.exe app.config qavalues.xml 
+2

+1好極了!我正在尋找這樣的東西...它會使我的配置文件有點醜陋,但我寧願有一個比三個稍微醜陋的配置文件更難看。 (注意:這僅適用於配置文件,不適用於女性)。 – 2009-01-27 17:09:20

相關問題