2012-03-21 51 views
5

我們有一個計劃任務運行許多C#控制檯應用程序。所有這些應用程序都有自己的配置文件,其中包含我們的smtp服務器等設置。如果我們的smtp服務器發生了變化,我們將不得不手動進入每個配置文件並進行更改。多個應用程序可以查看C:驅動器上的1個配置文件,還是被認爲是不好的做法?使用數據庫來存儲值是一個不錯的選擇。多個C#應用程序可以使用一個App.Config文件嗎?

+0

爲什麼使用數據庫的禁忌?這是一個很常見的做法。 – 2012-03-21 19:24:13

+1

我們的管理員可能沒有數據庫訪問權限。 – broke 2012-03-21 19:48:15

回答

14

您可以指向外部的配置文件,如下面的應用程序的配置文件中,然後把所有的應用程序都使用同一組的設置,從單個文件:

<appSettings file="c:\CommonSettings.config"> 
    <add key="MyKey" value="12"/> 
</appSettings> 

欲瞭解更多信息,你可以閱讀以下文章:

+0

這很酷,謝謝! – broke 2012-03-21 20:27:54

3

由於.config文件名需要與可執行文件名稱匹配(因此對於example.exe,它將是example.exe.config),因此不能直接共享一個應用程序配置文件。

由於它們是單獨的應用程序,因此對於不同的應用程序有單獨的值是有意義的。

如果有你想分享的配置部分,你可以使用configSource屬性指向一個文件。該appSettings部分也有特定的屬性file,你可以以同樣的方式使用。

如果有一定的配置值跨所有應用程序共享,可以考慮將它們放置在machine.config文件正在使用的框架的版本。

2

可以使用自定義XML文件來存儲配置數據? 沒有必要使用app.config。

+0

我可以使用xml文件。無論如何,我認爲這可能會更容易。 – broke 2012-03-21 19:47:52

0

使用Cinchoo框架,你可以做到這一點,通過簡單地創建自定義的配置對象,並用它所有的控制檯應用程序。它們都將從相同的配置文件中讀取。欲瞭解更多信息,請訪問:http://www.cinchoo.com

相關問題