2010-04-30 106 views
3

如果我們可以有多個.config文件,我們可以與其他項目共享一個配置文件,並將私有配置放入另一個。 Visual Studio 2008會混淆?C#我們可以有一個項目的多個.config文件嗎?

+0

這是ASP.NET嗎? – 2010-04-30 21:02:46

+0

這是針對C#項目的。 – 5YrsLaterDBA 2010-04-30 21:05:45

+1

'C#'不是項目類型,它是一種語言。該項目是ASP.NET,Winforms,WPF等。 – Aaronaught 2010-04-30 21:19:07

回答

2

Visual Studio 2010支持多個.config文件。這是新的Web應用程序打包和部署系統的一個特點。我們可以爲應用程序的每個配置創建單獨的web.config文件。但對於2008年有對多配置文件不支持,你可以通過增加兩個配置文件解決此,並在構建時將其重命名

例子:

private.config預 public.config

-msbuild事件合併這兩個文件

重命名合併後的文件,它應該是的web.config或app.config中

希望這有助於...

小號

+0

是的,這是一個受歡迎的功能 - 但最終它會生成一個依賴於平臺/構建的web.config或app.config。它不允許在運行時將多個配置文件組合在一起* - 它是一個編譯/構建時間替換引擎。 – 2010-04-30 21:15:42

0

儘管只有一個配置節處理程序,但您可以爲每個目錄配置多個Web配置。

8

沒有,除了它有一個特殊的file=屬性,它在「累積性」的方式工作的<appSettings>節點,所有配置部分是單拍事務 - 你擁有它,你對它有一個準確 - 或你有什麼。

<appSettings file="common.appsettings.config"> 
    <add key="private1" value="value1" /> 
</appSettings> 

這將在common.appsettings.config文件和任何不是被明確的價值在你自己的配置覆蓋這裏正在從外部配置文件中使用的內容閱讀。

不能添加額外的「私人」的信息,以現有的配置部分,據我所知。

0

配置文件是從一般到特殊分層。層次結構中更下面的配置文件將覆蓋以前的設置。因此,如果您有一個包含主web.config文件的解決方案,則項目中的任何web.config文件都會覆蓋該文件,並且僅對這些項目具有特定和可見性。如果項目由多個文件夾組成,則可以爲每個文件夾添加一個web.config文件,同樣也可以使用不同的設置來覆蓋上面設置的任何設置。但是我警告過度設計這一點,或者如果您在每個級別配置安全性,則可能難以涓滴某些屬性值或安全漏洞。

0

從理論上講,你應該能夠有多個.config文件,其中一些會由幾個項目共享。這樣做的

一種方法是採用一些實用工具,能夠合併具有相同的基本結構兩個XML文件。然後,您可以添加調用此工具的預構建或後構建事件。該工具會合並幾個.config文件,並將生成的.config文件輸出到項目的目標目錄。

如果你不想依賴任何外部工具,並得到純粹在Visual Studio這樣做,你可能無法找到任何實際的解決方案。

0

每個配置部分可以放在在外部文件中,並從主的app.config /網頁中引用。通過configSource屬性進行配置。但是,您必須爲每個要編寫的自定義節/外部配置文件編寫自定義節處理程序,這可能會有點乏味。另外,appSettings部分可以通過相同的機制外部化並引用。

相關問題