2010-12-16 24 views
8

我有一個控制檯應用程序有App.Confile文件。 現在在這裏維護特定環境的參數。我們可以在.NET控制檯應用程序中有多個App.Config文件嗎?

現在我想有多的app.config文件(如app.dev.config,app.test.config和app.prod.config),我們怎麼可以有多個web.config文件中的方法。

在Web應用程序的情況下,我們可以處理這個,ConfigurationManager會選擇相應的Web.Config文件。

在控制檯應用程序的情況下,我不確定。如果是,我們怎麼能有多個app.config文件?

感謝您的幫助。

感謝

回答

8

UPDATE

隨着Visual Studio 2010中和,你這已經全部集成到IDE中。如果你右鍵點擊你的配置文件,VS給你選擇爲每個構建配置生成一個變換配置。如果您要爲每個環境創建構建配置,MSBuild將自動爲您生成正確的Web.config/app.config。

簡答案,是的。你可以在你的構建腳本中擁有不同的文件,但是你必須將正確的文件重命名爲「App.config」並且你已經設置了(在編譯之前)。

長答案,您應該使用的是Enterprise Library MergeConfiguration工具。這使您可以使用現有的App.config作爲基礎併爲每個環境定義增量。該工具將合併基礎和增量以生成環境特定的配置文件。您仍然需要構建腳本中的一些邏輯來應用正確的配置文件。

當您在機器上安裝Enterprise Library時,可以在Visual Studio中右鍵單擊配置文件並通過配置工具對其進行編輯。您可以使用它來定義您的環境以及應用程序設置和連接字符串以覆蓋每個環境。

http://entlib.codeplex.com/

+1

這工作。我在Build命令中添加了複製$(ProjectDir)應用程序$(ConfigurationName).config $(ProjectDir)app.config。 – Rita 2010-12-17 19:02:36

8

從巴巴克的回答遵循,你可以在你的配置也獨立的部分伸到其他配置文件使用任何元素的configSource屬性,它代表ConfigurationSection,如:

<appSettings configSource="appSettings.config" /> 

而且在appSettings.config

<?xml version="1.0" encoding="UTF-8"?> 
<appSettings> 
    <add key="Blah" value="Nim nim nim" /> 
</appSettings> 
+0

這個句柄連接字符串條目嗎? – 2010-12-16 19:21:26

+0

你可以這樣做:'' – 2010-12-16 19:38:58

+1

似乎沒有爲運行時/ assemblyBinding工作......可悲的是。 – 2013-09-23 14:19:39

相關問題