2010-10-18 35 views
0

我有一個包含數據庫連接字符串和appsettings的Windows服務的app.config文件。當我安裝Windows服務時,它將被安裝在「C:\ program files \」文件夾中,並且設置被複制到同一文件夾中的一個名爲「.exe.config」的文件中,這使得改變設置後的設置變得困難部署到測試環境。我可以將所有設置存儲在共享網絡驅動器上的某個外部文件中,而不是安裝該服務的相同文件夾?那可能嗎?只能替代我能想到的是創建一個xml文件並使用.NET XML API讀取它,另一個問題是我需要注意文件中的更改並重新加載服務中的設置。使用.NET窗口服務的外部配置文件

+1

可能的重複[http://stackoverflow.com/questions/771814/how-to-read-app-config-from-a-custom-location-ie-from-a-database-in-net] (http://stackoverflow.com/questions/771814/how-to-read-app-config-from-a-custom-location-ie-from-a-database-in-net)。 – 2010-10-18 10:58:38

+2

您可以隨時創建自己的XML配置文件並從這裏管理設置。 – 2010-10-18 11:03:17

回答

2

Linq to XML使讀取外部設置文件變得相當容易。您還可以使用FileSystemWatcher來監視設置文件中的更改。

2

你可以把你的一些配置設置你的核心配置文件,例如:

<connectionStrings configSource="connectionStrings.config" /> 

和:

<?xml version="1.0" encoding="UTF-8"?> 
<connectionStrings> 

</connectionString> 

這樣一來,只要你不部署connectionStrings.config文件,您可以安全地部署應用程序並分別維護這些設置。這種方法的好處是,您不需要創建一個獲取配置數據的全新方法,這是內置於配置系統中的,只需閱讀這些設置即可。